【发布时间】:2013-08-22 19:15:33
【问题描述】:
我正在使用 jQuery Validation Plugin 1.9.0 和 jQuery 1.7.2。
我希望使用 jquery 验证插件验证我的表单。 它在 Firefox 20.0.1 和 IE 10 中运行良好。 但是在 Chrome (26.0.1410.64 m) 和 Opera (12.14) 中,我无法在表单中单击取消而不阻止验证。
这是我的 javascript 代码:
submitHandler: function(form) {
if (this.submitButton.value != 'cancel') {
$(form).hide();
$('#load').show();
$(form).submit();
}
else {
event.preventDefault();
}
}
当我在 FF 和 IE 上单击取消时,我会按预期返回我的网页主页,但是当我在 Chrome 和 Opera 中执行此操作时,由于表单未完全填写,我会显示错误消息。 在这两种情况下,都会调用 event.preventDefault(),但似乎行为因导航器而异。
您知道可能出了什么问题吗?
感谢您的帮助!
【问题讨论】:
-
如果你实际上没有在任何地方定义
event,你就不能阻止它的默认操作。 -
事件是在窗口上定义的(因此,调用 event.preventDefault() 就像调用 window.event.preventDefault() - 如果事件尚未在更高的词法范围中定义 - 并且它应该仍然有效)。我认为真正的问题是 OP 不明白 event.preventDefault() 的含义。
-
显示您的 HTML。否则,我们无法为您提供很好的帮助。
-
@Adam:该“功能”正在逐步淘汰。并非所有浏览器都支持它,因此不建议您使用
window.event。 -
submitHandler,设置后将阻止提交表单。preventDefault在这里不需要,您不在活动中。因此,除非您致电form.submit(),否则不会提交任何内容。
标签: jquery forms jquery-validate