2015-05-21 113 views
0

我在使用一個mroe jQuery插件驗證Jquery的PLugin中創建自定義規則。我使用jQuery插件https://github.com/Bluefieldscom/intl-tel-input來格式化電話號碼。我將這個規則包含在驗證插件中。使用其他手機驗證插件進行電話驗證

$("#UserSettingsForm").validate({ 
     rules: { 
      "data[User][phone]": { 
       required: true, 
       fieldPresent: function() { 
        return $("#UserPhone").intlTelInput("isValidNumber"); 
       } 
      } 
     }, 
    }); 

這將返回$("#UserPhone").intlTelInput("isValidNumber");如果number有效,則返回true/false。但它不附加到元素「數據[用戶] [電話]」,是一種方式,我可以將它附加到元素,而不提及ID,以便我可以全局使用它以及它使用電話驗證以及驗證我的插件。

+0

爲什麼不直接使用jQuery驗證插件了嗎?它內置且使用起來非常簡單,您可以對電話號碼進行自定義驗證。 – TGarrett

+0

這不會讓我驗證世界上所有的國家。它爲我提供了驗證以及格式,包括ISD代碼。 我只是想爲驗證插件添加自定義規則。 – Sankalp

+0

我在插件之前完成了一些自定義規則,並且在升級JQuery版本時發現其中一些笨重,只要注意,如果您編寫和擴展或使用某人的擴展,升級JQuery Validater插件後,您可能會有問題的... – TGarrett

回答

2

使用圖書館的addMethod功能:

$.validator.addMethod('isValidNumber',function (value,element){ 
    return this.optional(element) || $(element).intlTelInput('isValidNumber'); 
},'Please specify a valid phone number'); 

然後你的規則是這樣的:

rules: { 
    required:true, 
    isValidNumber:true 
} 
+0

Grt !!有用。 – Sankalp