Javascript 为什么jQuery返回true?

Javascript 为什么jQuery返回true?,javascript,jquery,jquery-validate,Javascript,Jquery,Jquery Validate,这是我的代码,它不工作(返回true),即使有验证错误也会提交我的表单: jQuery().ready(function() { jQuery("#post").validate({ invalidHandler: function(form, validator) { $("#publish").removeClass("button-primary-disabled"); $('#ajax-loading').hide(

这是我的代码,它不工作(返回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”似乎与保留“return false”的效果相同


新问题:如何保持返回invalid(不提交表单和返回标准错误消息)的默认功能,同时修改我的两个元素?

仅通过查看您的代码,我注意到您的
invalidHandler
函数后有一个语法错误:后面有一个逗号

jQuery().ready(function() {
    jQuery("#post").validate({
        invalidHandler: function(form, validator) {
            $("#publish").removeClass("button-primary-disabled");
            $('#ajax-loading').hide();
            return false;
        } 
    });
});
另外,当省略
返回false
时,表单会做什么?我在文件中没有看到任何关于它实际上在做什么的东西。当执行达到这一点时,表单的提交应该已经被取消


谢谢你的接球。但无论哪种方式,它的作用都是一样的。后面的逗号在哪里?和第二个一样。@Eli啊哈!省略invalidHandler中的所有内容,包括“return false;”会给我与在其中保留“return false;”相同的结果。所以,当一个表单无效时,我如何修改这两个元素并获得默认行为?您是否定义了任何规则?这些规则决定了哪些数据需要验证,如果返回false,invalidHandler将被激发。我猜“发布”或“ajax加载”都是未定义的Id。检查HTML或尝试显示$(“#publish”).length和$(“#ajax加载”).length,以确保正确。@rontornambe。Juqery设计用于处理0+个选定元素。我注意到您在前几行代码中使用了
jQuery()
,但在中断函数的行中使用了
$()
别名。您是否调用了
jQuery.noConflict()
方法,或者包含了一些其他库,这些库也尝试定义
$
,或者创建了自己的名为
$
的变量(当您尝试将
$()
用作
jQuery()
时,其中任何一个都会导致错误)?