Jquery 正在尝试使用live()、delegate和bind()提交表单
如果表单无效,我想在浏览器控制台中打印消息 使用bind激活代码:Jquery 正在尝试使用live()、delegate和bind()提交表单,jquery,forms,submit,bind,live,Jquery,Forms,Submit,Bind,Live,如果表单无效,我想在浏览器控制台中打印消息 使用bind激活代码: jQuery(document).ready(function () { $('form').bind('submit', function () { if ($j(this).valid() == false) { console.log("Warning: form not valid"); }; }); }); 当我将bind替换为submit时,它
jQuery(document).ready(function () {
$('form').bind('submit', function () {
if ($j(this).valid() == false) {
console.log("Warning: form not valid");
};
});
});
当我将bind替换为submit时,它也可以正常工作:
$('form').submit(function () {
$('body').delegate('form', 'submit', function () {
但当我使用委托时不起作用:
$('form').submit(function () {
$('body').delegate('form', 'submit', function () {
即使直播也没有成功:
$('form').live('submit', function () {
表单不是动态插入的。是什么原因导致live和delegate不工作
编辑
我刚刚发现jquery.validate.min.js是问题的根源。嗯,但是我怎样才能防止我自己的表单事件被阻止呢 我猜您从回调中
返回false
,从而阻止了该回调的触发
查看此我猜您从回调中返回false,从而防止此回调触发
查看此您将在
表单
元素上有另一个处理程序,或者在表单
和主体
之间有一个祖先,它通过以下方式阻止事件的传播:
从事件处理程序返回false
'ing您需要找到该处理程序,并阻止它这样做。请记住,这可能是您启用的插件的工作。您将在
表单
元素上有另一个处理程序,或者在表单
和主体
之间有一个祖先,它通过以下方式阻止事件的传播:
从事件处理程序返回false
'ing您需要找到该处理程序,并阻止它这样做。请记住,这可能也是您启用的插件的工作。您使用的是哪个版本的jQuery?为什么要在主体上而不是表单上执行.live?如果表单未动态插入,为什么不直接在表单元素上绑定事件?抱歉,复制和粘贴错误,我更新了活动部分。我使用的是jquery 1.6.4,因为我以后插入表单时也会显示此消息。请删除随
附上的事件。提交仅保留委派并查看它是否有效。您使用的是什么版本的jquery?为什么要在主体上而不是表单上执行.live?如果表单未动态插入,为什么不直接在表单元素上绑定事件?抱歉,复制和粘贴错误,我更新了活动部分。我之所以使用jquery 1.6.4,是因为我以后插入表单时也会显示该消息。请删除随附加的事件。提交仅保留委派并查看它是否有效。情况并非如此,以前没有其他事件绑定。@Simon。您是否删除了在
和
上附加的事件?提交
?情况并非如此,以前没有其他事件绑定。@Simon。您是否删除了在
和
.submit上附加的事件?我刚刚发现jquery.validate.min.js是问题的根源。嗯,但是我怎样才能防止我自己的表单事件被阻止呢?@Simon。使用unbind
删除它们的偶数。@Simon:您的事件和jquery.validate绑定的事件处理相同。绕过jquery.validate绑定的唯一方法就是像gdoron所说的那样解除这些事件的绑定。我刚刚发现jquery.validate.min.js导致了这个问题。嗯,但是我怎样才能防止我自己的表单事件被阻止呢?@Simon。使用unbind
删除它们的偶数。@Simon:您的事件和jquery.validate绑定的事件处理相同。绕过jquery.validate绑定的唯一方法是像gdoron所说的那样解除这些事件的绑定。