如何在 jquery 验证中使用移动模式

how to use mobile pattern in jquery validation

我正在使用 jquery 格式化程序为我们的手机号码强制设置模式

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

如何添加到 jquery 验证规则。因为当字段为空时。我只能设置需要的。

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

Read the documentation. There is a pattern rule within jQuery Validate. However, you'll need to include the additional-methods.js file.

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

顺便说一句 - additional-methods.js 文件已经包含您可以使用的各种 phone 数字格式的规则。


就此代码而言...

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

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

Fiddle - 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 验证插件已经定义了额外的验证方法来验证 USphone 号码等等。参考https://github.com/jzaefferer/jquery-validation/tree/master/src/additional

2) 在此示例中,我根据您期望的格式放置了正则表达式,但可以对其进行修改以更正确地验证 phone 数字。