2016-04-10 17 views
-1

我使用jQuery格式化迫使模式为我们的手机号码如何在jQuery验证

$('.mobile_number').formatter({ 
     'pattern': '+{{99}}-{{999}}-{{999}}-{{9999}}', 
     'persistent': true 
}); 

如何添加到jQuery验证规则中使用的移动模式。因为当该字段为空时。我只能设置所需的。

$('.required').each(function() { 
     $(this).rules('add', { 
      required: true, 
      messages: { 
       required: "Required" 
      } 
     }); 
}); 
+0

你可以使用HTML5的'pattern'属性。这会更方便。 –

+0

但我需要使用jquery验证 – Boy

回答

1

小提琴 - https://jsfiddle.net/7nd4ehhq/

<form id="myform"> 
    <input type="text" id="phoneUS" name="phoneUS"> 
    <input type="submit" value="submit"> 
</form> 

您可以尝试如下定义您的自定义功能:

$(document).ready(function(){ 
    $("#myform").validate({ 
    rules:{ 
     phoneUS: 
     { 
     required:true, 
     phoneUS:true 
     } 
    } 
}); 

$.validator.addMethod("phoneUS", function(phone_number, element) { 
    return phone_number.match(/^\+[1-9]{2}-[0-9]{3}-[0-9]{3}-[0-9]{4}$/) 
}, "Please specify a valid phone number"); 
}); 

请注意:

1)JQuery验证插件早已额外的验证方法定义为验证USononumber等。参考https://github.com/jzaefferer/jquery-validation/tree/master/src/additional

2)在这个例子中,我已经把正则表达式基于你期望的格式,但是这可以被修改以更正确地验证电话号码。

+1

上面的代码不适合你吗? – koolhuman

+0

其作品谢谢 – Boy

2

Read the documentation。在jQuery Validate中有一个pattern规则。但是,您需要包含the additional-methods.js file

一旦包含,pattern可以选择通过HTML5 pattern属性声明。否则,可以使用.validate().rules()来声明,就像任何其他规则一样。

顺便说一句 - 该additional-methods.js文件已包含您可以使用的各种电话号码格式的规则。


至于这个代码...

$('.required').each(function() { 
    $(this).rules('add', { 
     required: true, 
     messages: { 
      required: "Required" 
     } 
    }); 
}); 

这完全是多余的和不必要的。您将所有元素与class="required"匹配,并以编程方式应用required规则。但是,插件自动required规则应用于class="required"的任何表单元素。

+0

对您的“必需”类笔记有意义。干杯! – koolhuman