我正在使用 jQuery 验证引擎,并且我有两个自定义规则需要用于一个字段。我已经一个一个地尝试了它们,它们工作正常。我如何连接两者?
class="validate[required,custom[OFS, onlyLattinLetters], maxSize[140]]"
或者
class="validate[required,custom[OFS], custom[onlyLattinLetters], maxSize[140]]"
不起作用。
我正在使用 jQuery 验证引擎,并且我有两个自定义规则需要用于一个字段。我已经一个一个地尝试了它们,它们工作正常。我如何连接两者?
class="validate[required,custom[OFS, onlyLattinLetters], maxSize[140]]"
或者
class="validate[required,custom[OFS], custom[onlyLattinLetters], maxSize[140]]"
不起作用。
您是否尝试过在插件初始化函数中声明它们而不是内联类?
$(document).ready(function() {
$('#myForm').validate({
rules: {
myField: {
required: true,
OFS: true,
onlyLattinLetters: true,
maxSize: 140
}
}
});
});
编辑:
我建议完全避免使用内联代码;我认为它更难维护,使您的 HTML 冗长,并且将功能与您的演示样式混合在一起。
我还删除了我在 jQuery 讨论论坛中找到的下面的示例(请参阅编辑历史记录),因为我找不到任何有关正确语法和用法的官方文档。
如果你必须使用内联,使用 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");
那么你可以使用你的验证调用,从内联中删除 custom[]
class="validate[required, OFS, onlyLattinLetters, maxSize[140]]"
确实更好的方法是 Sparky672 的 validate() 插件初始化,但如果你必须使用内联上述工作