버튼 클릭시 양식 자동 제출 비활성화


180

여러 버튼을 사용하는 HTML 양식이 있습니다. 문제는 어떤 버튼을 클릭하더라도 버튼이 "제출"유형이 아니더라도 양식이 제출된다는 것입니다. 예를 들어 :와 같은 버튼을 사용 <button>Click to do something</button>하면 양식이 제출됩니다.

e.preventDefault()이 버튼들 각각에 대해 매우 고통 스럽습니다 .

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

이 자동 동작을 비활성화하는 방법이 있습니까?

답변:


460

버튼 <button>Click to do something</button> 제출 버튼입니다.

type="button"변경하도록 설정하십시오 . HTML 권장 사항에 지정된type="submit" 대로 기본값 입니다.


24
이 간단한 사양을 알지 못했기 때문에 수면을 잃어 버렸습니다.
palerdot

4
palerdot의 개념을 반향하면서 빠른 Google 검색 후이 메모를 발견하고 시간을 죽이지 않은 것이 기쁩니다. 정말 고마워요
brooklynsweb

2
@NiketJoshi —이 진술은이 답변에 대한 질문과 관련이없는 것으로 보입니다. 새로운 질문이있는 경우 다음 중 하나를 요구 하지만, 확실히 당신이 제공 할 수 있도록 명확한 문제 설명최소한의 재현 예 .
Quentin

19

다음과 같이 return false (return false를 사용 하면 모든 DOM 요소의 기본 동작보다 우선 함)를 사용할 수 있습니다.

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

myform.submit ()을 사용하여 양식을 제출하십시오.

또는 대안 적으로 :

mybutton.onclick = function () 
{
   // do what you want
   return false
}

또한 type="button"양식 을 사용하면 제출되지 않습니다.


8

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

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

그것은이다 e.preventDefault();.
hlcs

0

입력을 속성으로 직접 추가하려면 다음을 사용하십시오.

 onclick="return false;" 

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

이것은 양식 제출 동작을 방지합니다


0

다른 것:

if(this.checkValidity() == false) {

                $(this).addClass('was-validated');
                e.preventDefault();
                e.stopPropagation();
                e.stopImmediatePropagation();

                return false;
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.