2012-11-27 50 views
0

我写了下面的简单规则jQuery验证:jQuery验证。 JavaScript的应用逻辑(或)自定义规则

 jQuery.validator.addMethod("notEqual", function(value, element, param) 
     { 
      return this.optional(element) || value != param; 
     }, "This field is required"); 

这工作,这样我可以说:

 $("#form").validate({ 
       rules: 
       { 
        field1: {notEqual: "Please Select", required: true}, 
        field2: {notEqual: "Year", required: true} 
       }, 
       messages: 
       { 
        field1: { 
          notEqual: "This field is required", 
          required: "This field is required" 
          } 
        field2: { 
          notEqual: "This field is required", 
          required: "This field is required" 
          } 
       }, 

       submitHandler: function(form) { 
       form.submit(); 
      } 
     }); 

不过,我想能够说任何一个字段不允许等于多个事物,例如

field1: {notEqual: "Please Select" || "Year" || "Some Value", required: true}, 

但我已经尝试过这种语法以及安排“ÖR”操作符的一些其他方法,并且它们都不起作用。谁能帮忙?谢谢。

+0

您不想匹配的值(“请选择”,“年份”,“某种价值”)他们来自哪里?它们是其他表单字段的值还是固定文本值? –

回答

1

您可以通过JavaScript数组作为参数的验证方法,如例如

在回答描述 jQuery Validation plugin custom method. Multiple parameters

field1: {notEqual: ["Please Select", "Year", "Some Value"], required: true}, 

然后让你自定义的方法是这样的

jQuery.validator.addMethod("notEqual", function(value, element, param) 
{ 
    var result = value != param[0] && value != param[1] && value != param[2]; 
    return this.optional(element) || result; 
}, "This field is required");