청취자 기능이 거짓을 반환하더라도 양식이 여전히 제출됩니다.
-
12-09-2019 - |
문제
이 JavaScript가 왜 양식이 제출되는 것을 막지 않는지 알아 내려고 노력하고 있습니다.
<form action="http://www.example.com" id="form">
<input type="text" />
<input type="submit" />
</form>
<script>
var code = function () {
return false;
};
var element = window.document.getElementById("form");
if (element.addEventListener) {
element.addEventListener("submit", code, false);
}
</script>
다음 onsubmit 속성을 양식 요소에 추가하지 않는 한 :
<form action="http://www.example.com" id="form" onsubmit="return false">
<input type="text" />
<input type="submit" />
</form>
<script>
var code = function () {
return false;
};
var element = window.document.getElementById("form");
if (element.addEventListener) {
element.addEventListener("submit", code, false);
}
</script>
addeventListener 메소드만으로도 트릭을 수행 해야하는 것 같습니다. 이견있는 사람? 나는 Mac에 있고 Safari, Firefox 및 Opera에서 동일한 결과를 경험하고 있습니다. 감사.
해결책
매우 유용한 두 가지 답변의 정보를 Mac과 PC 모두에서 작동하는 솔루션으로 결합했습니다.
<script>
var code = function (eventObject) {
if (eventObject.preventDefault) {
eventObject.preventDefault();
} else if (window.event) /* for ie */ {
window.event.returnValue = false;
}
return true;
};
var element = window.document.getElementById("form");
if (element.addEventListener) {
element.addEventListener("submit", code, false);
} else if (element.attachEvent) {
element.attachEvent("onsubmit", code);
}
</script>
다른 팁
나는 당신이 찾고있는 것이 preventDefault()
방법의 방법 Event
구현하는 브라우저의 인터페이스. 예상 한 방식으로 양식 제출을 취소합니다. "return false
" 에게.
<script type="text/javascript">
var code = function (evt) {
if (evt.preventDefault) {
evt.preventDefault();
}
return false;
};
window.onload = function() {
var element = window.document.getElementById("form");
if (element.addEventListener) {
element.addEventListener("submit", code, false);
}
};
</script>
제휴하지 않습니다 StackOverflow