不使用提交按钮将方法添加到jQuery验证

不使用提交按钮将方法添加到jQuery验证,jquery,validation,jquery-validate,Jquery,Validation,Jquery Validate,我有一个表单需要验证,但它没有提交按钮。 因此,为了完成验证,我遵循了上的示例 它告诉调用.valid()函数。 因此,我添加了以下工作正常的代码: $(".getcars").click(function() { valid = $("#form1").valid(); if(valid){ ajaxCall(); }

我有一个表单需要验证,但它没有提交按钮。 因此,为了完成验证,我遵循了上的示例

它告诉调用.valid()函数。 因此,我添加了以下工作正常的代码:

            $(".getcars").click(function() {
                valid = $("#form1").valid();
                if(valid){
                    ajaxCall();
                }

            }); 
现在我想向验证字段添加更多规则,所以我尝试了

jQuery.validator.addMethod("lettersandnumonly", function(value, element) {
                return this.optional(element) || /^[0-9A-Za-z]+$/i.test(value);
                    }, "Letters and numbers only ");
jQuery.validator.addMethod("nowhitespace", function(value, element) {
                return this.optional(element) || /^\S+$/i.test(value);
            }, "No white space please"); 

            $(".getcars").click(function() {
                valid = $("#form1").valid(
                {
                rules: {
                    postal_code: {
                        maxlength: 6,
                        lettersandnumonly: true,
                        nowhitespace: true
                    }
                }
            });
                if(valid){
                    ajaxCall();
                }

            });

但这是行不通的。有人能告诉我在添加规则时做错了什么吗?

rule
定义在对的初始调用中。由于
valid()
仅对调用了
validate()
的表单有效,因此我假设代码中有一行调用
validate()

您只需将规则定义移动到初始调用中:

$("#form1").validate({
    rules: {
        postal_code: {
            maxlength: 6,
            lettersandnumonly: true,
            nowhitespace: true
        }
    }
});
。。。然后像最初那样稍后调用
.valid()

$(".getcars").click(function() {
    valid = $("#form1").valid();
    if(valid) {
        ajaxCall();
    }
}); 

顺便说一句,我试图验证的字段是请输入您的邮政编码或其一部分!
$(".getcars").click(function() {
    valid = $("#form1").valid();
    if(valid) {
        ajaxCall();
    }
});