2

我创建了一个自定义规则

$(document).ready(function(){
    $("#test-form").validate({
            rules: { 
                test1:{
                    required: true,
                    minlength: 2
                } 
            },
            messages:  {
                test1:{
                    required: "required",
                minlength: "min 2"                      
                }
            }
        });
    // don't really process form
    $("#test-form").submit(function() { return false; });

我有这个 HTML 代码

<input type="text" class="test1"/>

但是它不起作用

如果我更改为预定义规则,它会起作用

<input type="text" class="number"/>
4

2 回答 2

1

The keys in rules should match the name parameter of the field. Try this:

<input type="text" name="test1" />

Also, you can use debug: true in the options of validate to prevent the form submission while you're testing, instead of returning false from the form submit.

于 2012-05-22T21:01:05.653 回答
1

罗里是对的,规则和消息键应该与“名称”属性匹配,但它看起来虽然您正在尝试创建一个可以通过类名以声明方式添加的自定义规则?

因此,我认为您正在寻找.addMethod()可以像这样使用的功能:

jQuery.validator.addMethod("alphanumeric", function(value, element) {
    return this.optional(element) || /^\w+$/i.test(value);
}, "Letters, numbers, and underscores only please");

这将通过这样的类名自动获取:

<input type="text" class="alphanumeric" />
于 2012-05-22T23:06:51.270 回答