2012-11-27 78 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");