为什么这个jQuery返回true?

时间:2012-01-31 03:05:20

标签: javascript jquery jquery-validate

这是我的代码无效(它返回true)并且即使出现验证错误也会提交我的表单:

jQuery().ready(function() {
    jQuery("#post").validate({
        invalidHandler: function(form, validator) {
            $("#publish").removeClass("button-primary-disabled");
            $('#ajax-loading').hide();
            return false;
        }
    });
});

此代码将返回false正常并按预期工作:

jQuery().ready(function() {
    jQuery("#post").validate({
        invalidHandler: function(form, validator) {
            return false;
        }
    });
});

为什么不是第一个工作?

编辑1:删除了尾随逗号,但它们不是问题。

编辑2:如果重要,我使用它来验证wordpress管理员中的自定义帖子类型输入表单。仍然没有解释为什么一个有效,另一个没有。 :/

编辑3:看来省略“return false”也和留下它一样。

新问题:如何保留返回无效的默认功能(不提交表单并返回标准错误消息),还要修改我的两个元素?

1 个答案:

答案 0 :(得分:0)

通过查看代码,我注意到invalidHandler函数后面存在语法错误:有一个尾随逗号。

jQuery().ready(function() {
    jQuery("#post").validate({
        invalidHandler: function(form, validator) {
            $("#publish").removeClass("button-primary-disabled");
            $('#ajax-loading').hide();
            return false;
        } 
    });
});

此外,在遗漏return false时,表单会做什么?我在文档中没有看到任何关于实际做任何事情的事情。到执行到达这一点时,表单的提交应该已经取消。

http://docs.jquery.com/Plugins/Validation/validate