Jquery 正在尝试使用live()、delegate和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时,它

如果表单无效,我想在浏览器控制台中打印消息

使用bind激活代码:

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所说的那样解除这些事件的绑定。