如果表单无效,我想在浏览器控制台中打印一条消息。
以下代码与bind有效:
jQuery(document).ready(function () {
$('form').bind('submit', function () {
if ($j(this).valid() == false) {
console.log("Warning: form not valid");
};
});
});
当我用提交替换绑定(bind)时,效果也很好:
$('form').submit(function () {
但是当我使用委托(delegate)时不起作用:
$('body').delegate('form', 'submit', function () {
即使live也没有成功:
$('form').live('submit', function () {
表单不是动态插入的。 live 和 delegate 不起作用的原因可能是什么?
编辑
我刚刚发现 jquery.validate.min.js 导致了这个问题。嗯,但是我怎样才能防止我自己的表单事件被阻止呢?
最佳答案
您将在 form
元素上或 form
和 body
之间的祖先上有另一个处理程序,这会阻止传播事件,可以通过;
- 调用
stopPropagation()
在事件对象上 - 调用
stopImmediatePropagation()
在事件对象上 从事件处理程序返回 false
。
您需要找到该处理程序并阻止它这样做。请记住,这也可能是您启用的插件的工作。
关于jquery - 尝试使用 live()、delegate 和 bind() 提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9115115/