2015-05-21 70 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