[javascript] <button>이 양식을 제출하지 못하게 할 수 있습니까?

2 개의 버튼이있는 양식이 있습니다

<a href="index.html"><button>Cancel changes</button></a>

<button type="submit">Submit</button>

나는 이것처럼 jQuery UI의 버튼도 사용합니다.

$('button').button();

그러나 첫 번째 버튼도 양식을 제출합니다. 나는 그것을 가지고 있지 않다면 그렇지 않을 것이라고 생각 type="submit"했을 것입니다.

분명히 나는 ​​이것을 할 수 있었다

$('button[type!=submit]').click(function(event) { event.stopPropagation(); });

그러나 JavaScript 개입없이 해당 뒤로 버튼이 양식을 제출하는 것을 막을 수있는 방법이 있습니까?

솔직히 말하면 버튼 만 사용했기 때문에 jQuery UI로 스타일을 지정할 수 있습니다. button()링크를 호출하려고 시도했지만 예상대로 작동하지 않았습니다 (매우 추한 것처럼 보입니다!).



답변

요소 type속성의button 기본값 “submit”입니다. type="button"양식을 제출하지 않는 버튼을 생성하도록 설정하십시오 .

<button type="button">Submit</button>

HTML 표준 의 말에서 : “아무것도하지 않습니다.”


답변

button요소 의 기본 유형이 있습니다 submit.

유형을 설정하여 아무것도하지 않도록 할 수 있습니다 button.

<button type="button">Cancel changes</button>


답변

좋은 오래된 HTML을 사용하십시오.

<input type="button" value="Submit" />

원하는 경우 링크의 주제로 랩핑하십시오.

<a href="http://somewhere.com"><input type="button" value="Submit" /></a>

또는 자바 스크립트로 다른 기능을 제공하기로 결정한 경우 :

<input type="button" value="Cancel" onclick="javascript: someFunctionThatCouldIncludeRedirect();"/>


답변

<form onsubmit="return false;">
   ...
</form>


답변

솔직히, 나는 다른 답변을 좋아합니다. 쉽고 JS에 들어갈 필요가 없습니다. 그러나 jQuery에 대해 묻는 것으로 나타났습니다. 따라서 완전성을 위해 jQuery에서 .click () 핸들러로 false를 리턴하면 위젯의 기본 조치가 무효화됩니다.

예를 보려면 여기를 참조하십시오 (그리고 더 많은 장점도 있습니다). 여기 문서도 있습니다 .

간단히 말해서 샘플 코드와 함께 다음을 수행하십시오.

<script type="text/javascript">
    $('button[type!=submit]').click(function(){
        // code to cancel changes
        return false;
    });
</script>

<a href="index.html"><button>Cancel changes</button></a>
<button type="submit">Submit</button>

추가 이점으로이 기능을 사용하면 앵커 태그를 제거하고 버튼을 사용하면됩니다.


답변

type속성을 설정하지 않으면 핸들러 false에서 리턴 OnClick하여 onclick속성을로 선언 할 수도 있습니다 onclick="return onBtnClick(event)".


답변

예, 당신은 버튼 값 버튼의 유형의 속성을 추가하여 양식을 제출할 수 있습니다 :
<button type="button"><button>