양식의 버튼을 클릭하면 양식이 제출됩니다. 이것을 피하는 방법?
저는 twitter-boostrap을 사용하는데이 라디오 버튼 을 제 형태 로 사용하고 싶습니다 . 문제는 이러한 버튼 중 하나를 클릭하면 양식이 즉시 제출된다는 것입니다. 이것을 피하는 방법? 라디오 버튼과 같은 기본 버튼을 사용하고 싶습니다.
에서:
<%= form_for @product do |f| %>
<div class="control-group">
<%= f.label :type, :class => 'control-label' %>
<div class="controls">
<div class="btn-group" data-toggle="buttons-radio">
<button class="btn">Button_1</button>
<button class="btn">Button_2</button>
</div>
</div>
</div>
<div class="form-actions">
<%= f.submit nil, :class => 'btn btn-primary' %>
<%= link_to 'Cancel', products_path, :class => 'btn' %>
</div>
<% end %>
자바 스크립트 :
// application.js
$('.tabs').button();
훌륭한 HTML5 사양에서 :
버튼 아니오 요소 유형 지정된 속성에 해당 유형의 속성 세트와 버튼 요소와 동일한 것을 나타낸다 "제출"을 .
그리고 a <button type="submit">
는 단순한 <button type="button">
푸시 버튼 처럼 동작하지 않고 양식을 제출 합니다 .
HTML4 사양은 같은 일을 말한다 :
type = submit | button | reset [CI]
이 속성은 버튼의 유형을 선언합니다. 가능한 값 :
submit
: 제출 버튼을 만듭니다. 이것이 기본값입니다.reset
: 리셋 버튼을 생성합니다.button
: 누름 버튼을 만듭니다.
따라서 <button>
요소 :
<button class="btn">Button_1</button>
<button class="btn">Button_2</button>
다음과 동일합니다 (호환 브라우저에서) :
<button type="submit" class="btn">Button_1</button>
<button type="submit" class="btn">Button_2</button>
이 버튼 중 하나를 누를 때마다 양식을 제출하게됩니다.
해결책은 일반 버튼을 사용하는 것입니다.
<button type="button" class="btn">Button_1</button>
<button type="button" class="btn">Button_2</button>
일부 버전의 IE type="button"
는 표준에 따라 기본적으로 설정되어 있습니다. 예상 한 동작을 얻을 수 있도록를 type
사용할 때 항상 속성을 지정해야합니다 <button>
.
preventDefault()
이것을 위해 사용할 수 있습니다
$('.btn').onClick(function(e){
e.preventDefault();
});
또는
type="button"
버튼 태그에 다음 코드를 추가하여 html을 업데이트 할 수 있습니다.
<%= form_for @product do |f| %>
<div class="control-group">
<%= f.label :type, :class => 'control-label' %>
<div class="controls">
<div class="btn-group" data-toggle="buttons-radio">
<button class="btn" type="button">Button_1</button>
<button class="btn" type="button">Button_2</button>
</div>
</div>
</div>
<div class="form-actions">
<%= f.submit nil, :class => 'btn btn-primary' %>
<%= link_to 'Cancel', products_path, :class => 'btn' %>
</div>
<% end %>
You can do this directly using rails form helper also by specifying type
as an option to "button":
<%= form_for @product do |f| %>
<div class="control-group">
<%= f.label :type, :class => 'control-label' %>
<div class="controls">
<div class="btn-group" data-toggle="buttons-radio">
<%= f.button "Button_1", type: "button", class: "btn" %>
<%= f.button "Button_2", type: "button", class: "btn" %>
</div>
</div>
</div>
<div class="form-actions">
<%= f.submit nil, :class => 'btn btn-primary' %>
<%= link_to 'Cancel', products_path, :class => 'btn' %>
</div>
<% end %>
ReferenceURL : https://stackoverflow.com/questions/9643806/form-is-submitted-when-i-click-on-the-button-in-form-how-to-avoid-this
'programing' 카테고리의 다른 글
sqlalchemy 여러 열 필터링 (0) | 2021.01.17 |
---|---|
소프트 키보드가 나타나면 EditText 필드가 포커스를 잃게됩니다. (0) | 2021.01.17 |
page.evaluate로 인수 전달 (0) | 2021.01.17 |
smartgit "git-am is in progress"리베이스 (0) | 2021.01.17 |
데이터베이스가 QuerySet.dates ()에서 잘못된 값을 반환했습니다. (0) | 2021.01.17 |