2012-03-22 4 views
120

여러 개의 버튼을 사용하는 HTML 양식이 있습니다. 문제는 버튼을 클릭 한 상태에서 버튼이 "제출"유형이 아니어도 양식이 제출된다는 것입니다. 예 : 버튼 모양 : <button>Click to do something</button>, 양식 제출 결과.버튼 클릭시 양식 자동 제출 사용 중지

이 버튼 하나 하나에 e.preventDefault()을 쓰는 것은 상당히 고통 스럽습니다.

저는 jQuery와 jQuery UI를 사용하며 웹 사이트는 HTML5입니다.

이 자동 동작을 사용 중지하는 방법이 있습니까?

답변

277

버튼은 <button>Click to do something</button>입니다. 버튼이 있습니다.

변경하려면 type="button"을 설정하십시오. type="submit"이 기본값입니다 (specified by the HTML recommendation 등).

+5

이 헛되이 내 코드를 수정 하루의 수면을 잃은 행동을 제출 사용 ! – palerdot

+4

palerdot의 개념에 반향을 일으켰습니다. 빠른 Google 검색 후 죽은 시간이 아닌이 메모를 발견했습니다. 아주 많이, 고마워. – brooklynsweb

+0

알아두면 좋습니다! –

5

<button>은 실제로 제출 버튼이며 다른 주요 기능은 없습니다. 유형을 버튼으로 설정해야합니다.
아래와 같이 이벤트 처리기를 바인딩하면 모든 버튼을 대상으로하므로 각 버튼마다 수동으로 처리 할 필요가 없습니다!

$('form button').on("click",function(e){ 
    e.preventDefault(); 
}); 
+0

그것은'e.preventDefault();'입니다. – hlcs

+0

감사합니다. –

11

원하는 것을하기가 어렵지 않습니다. 당신은 복귀를 사용하여 시도 할 수 거짓 그런 (모든 DOM 요소의 잘못된 재정의 기본 동작 반환) :) (myform.submit를 사용하여 선택적으로

또는 양식을 제출

myform.onsubmit=function() 
{ 
    //do what you want; 
    return false; 
} 

다음을 :

그러나 입력 유형 = "버튼"/ 버튼 유형 = "버튼"은 양식을 제출하지 않으므로 문제없이 사용할 수 있다고 생각합니다. 당신은 속성으로 입력에 직접 추가 할 경우 내가이 간단한 사양을 몰라서

-1

onclick="return false;" 

<input id = "btnPlay" type="button" onclick="return false;" value="play" /> 

이 방지 할 양식을