2011-01-20 51 views
6

我已經搜索堆棧溢出,無法找到我的問題的答案。bassistance jquery驗證插件 - 依賴不匹配

我使用的是bassistance jquery validation plugin,除了一個特定的部分,自定義方法外,它運行良好。

該方法正在工作,它只是調用$('selector')。valid()告訴我該元素是無效的,即使它應該是有效的。

這是由於this.optional(element)返回「dependency-mismatch」。

我的問題是:

可選檢查的元素時,什麼是依賴錯配是什麼意思?

依賴意味着它是可選的,但有其他依賴?

所以我的自定義方法檢查可選字段的「依賴不匹配」?

我不清楚它應該返回什麼,爲什麼。

我的自定義方法是否也會返回依賴項不匹配?或者我應該處理它?

這是我自定義的方法:

$.validator.addMethod(
     "ukphonenumber", 
     function (value, element, validate) { 

      if (validate) { 
       var regexp = "\\s*\\(?((\\+0?44)?\\)?[ \\-]?(\\(0\\))|0)((20[7,8]{1}\\)?[ \-]?[1-9]{1}[0-9]{2}[ \\-]?[0-9]{4})|([1-8]{1}[0-9]{3}\\)?[ \\-]?[1-9]{1}[0-9]{2}[ \\-]?[0-9]{3}))\\s*"; 
       var re = new RegExp(regexp); 
       return this.optional(element) || re.test(value); 
      } 
      else { 
       return true; 
      } 
     }, 
     "Please check your input." 
    ); 

而這增加的規則,我輸入:

$("#<%=txtTelephoneNumber.ID %>").rules("add", { 
      required: false, 
      ukphonenumber: true, 
      messages: { 
       required: "Please enter your telephone number", 
       ukphonenumber: "Your telephone number is invalid" 
      } 
     }); 

回答

1

我還通過電子郵件發送庫的開發,並得到這樣的響應:這解決了這個問題。

有什麼理由使用required:false而不是required:true?如果該字段不是必需的,則省略所需的規則而不是將其設置爲false。

您也可以嘗試在您的自定義方法中忽略對this.optional(element)的調用。

問候 喬恩