jQuery validate插件:具有动态元素ID的自定义规则

| 我尝试使用jQuery来应用自定义验证规则,如下所示
<script type=\"text/javascript\">
$(document).ready(function(){
jQuery.validator.addMethod(\"notaccept\", function(value, element, param) {
return value.match(new RegExp(\".\" + param + \"$\"));
}, \"<img src=\'../template/images/error.gif\' alt=\'Only alphabet allowed.\'>\");

$(\"#frm1\").validate({
  rules: {
    $(\'input[id^=txt_field]\'): { 
        notaccept: \"[a-zA-Z]+\" }        
  }
});
});
</script>
问题是上述代码中元素前缀选择器的使用不起作用。我动态生成格式为
txt_field11
txt_field12
等的多个字段。 是否可以像我一样将上述验证应用于多个元素?
已邀请:
我不确定
rules
选项是否足够强大以接受元素的任意选择器并为这些元素应用验证规则。 但是,您可以在初始化验证器后添加规则:
$.validator.addMethod(\"notaccept\", function(value, element, param) {
    return value.match(new RegExp(\"^\" + param + \"$\"));
}, \"Only alphabet allowed\");

$(\"#form\").validate({...});

$(\'input[id^=\"txt_field\"]\').each(function() {
    $(this).rules(\"add\", { notaccept: \"[a-zA-Z]+\" });
});
.each
调用是必需的,因为它看起来像验证程序仅在第一个匹配项上调用
.rules()
。 这是一个工作示例:http://jsfiddle.net/fDAQU/ 我将做更多的挖掘,看看是否有一种方法可以在最初传递给验证器的options对象中添加规则。

要回复问题请先登录注册