jQuery Validation插件。两个自定义规则不起作用

时间:2012-10-31 14:27:29

标签: jquery jquery-validate

我正在使用jQuery验证引擎,我需要为一个字段使用两个自定义规则。我一个接一个地试过它们,它们工作正常。我如何附上两者?

class="validate[required,custom[OFS, onlyLattinLetters], maxSize[140]]"

class="validate[required,custom[OFS], custom[onlyLattinLetters], maxSize[140]]"

不起作用。

2 个答案:

答案 0 :(得分:1)

您是否尝试在插件初始化函数中声明它们而不是内联类?

$(document).ready(function() {
    $('#myForm').validate({
        rules: {
            myField: { 
                required: true,
                OFS: true,
                onlyLattinLetters: true,
                maxSize: 140
            }
        }
    });
});

修改

我建议完全避免使用内联代码;我认为维护起来比较困难,使你的HTML变得冗长,并且它会将你的演示风格混合在一起。

我还删除了我在jQuery论坛中找到的以下示例(see edit history),因为我找不到任何关于正确语法和用法的官方文档。

答案 1 :(得分:-1)

如果你必须使用内联,请使用Add方法创建两个自定义规则,我会做一个显示

 jQuery.validator.addMethod("onlyLattinLetters", function(value, element) {
 return this.optional(element) || \p{IsBasicLatin}.test(value); 
 // or replace before .test() whatever your regex is 
 }, "Only in Latin numbers please");

然后您可以使用您的验证调用,从内联

中删除自定义[]
 class="validate[required, OFS, onlyLattinLetters, maxSize[140]]"

真正更好的方法是Sparky672的validate()插件初始化,但如果你必须使用内联上面的工作