如果初始事件返回 false,我们如何停止事件监听器的执行?
举个例子:-
<form id="cForm" name="cForm" method="post" onsubmit="return validate();">
...
</form>
<script type="text/javascript" >
function validate() {
return false;
}
$("#cForm").submit(function() {
// if validate() returns false do not execute this
});
</script>
我尝试过这个:
var form = document.getElementById('cForm');
var oldEvent = form.onsubmit;
form.onsubmit = function() {
return oldEvent && alert("test");
};
但它总是提醒“测试”。
最佳答案
你可以这样做:
- 首先从
form
中删除onsubmit
属性,因为您已经将 jQuerysubmit
事件绑定(bind)到它。 - 接下来在
submit
方法中添加验证代码,如下所示。
JS:
$("#cForm").submit(function () {
// if validate() returns false do not execute this
if (!validate()) return false;
});
更新
根据您的要求,您可以这样做:
$("#cForm").submit(function () {
var status = true;
try {
status = this["onsubmit"]();
if (typeof (status) === "undefined") status = true;
} catch (e) {
status = true;
}
return status && alert("test");
});
关于javascript - 如果初始事件返回 false,则停止执行事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19726547/