我在页面上有jQuery Validation插件.当有人在表单字段中键入电话号码时,我希望验证程序仅识别某种格式:
###-###-####
Run Code Online (Sandbox Code Playgroud)
我在JavaScript中看到了这一点:
phone_number: {
required: true,
number: true
},
Run Code Online (Sandbox Code Playgroud)
我可以在那里添加一些内容来指定电话号码所需的格式吗?我发现了一些关于添加jQuery Mask插件的东西,但如果我可以避免它,我宁愿不添加页面权重.(另外......当然必须存在某种方式来验证某种格式.)
And*_*ker 14
@斯帕克的建议是好的,如果你是一个灵活一点,但以防万一你想只是该格式,您可以添加自定义规则:
$.validator.addMethod('customphone', function (value, element) {
return this.optional(element) || /^\d{3}-\d{3}-\d{4}$/.test(value);
}, "Please enter a valid phone number");
$(document).ready(function () {
$("#myform").validate({
rules: {
field1: 'customphone'
}
});
});
Run Code Online (Sandbox Code Playgroud)
示例: http ://jsfiddle.net/kqczf/16/
您可以轻松地将其转换为自定义类规则.这样,您可以只为要拥有规则的每个输入添加一个类,并可能省略validate
调用中的rules对象:
$(document).ready(function () {
$("#myform").validate();
});
<input type="text" name="field1" id="field1" class="required customphone" />
Run Code Online (Sandbox Code Playgroud)
示例: http ://jsfiddle.net/kqczf/17/
只需使用jQuery Validate插件文件中phoneUS
包含的规则即可.additional-methods.js
$(document).ready(function () {
$('#myform').validate({ // initialize the plugin
rules: {
phone_number: {
required: true,
phoneUS: true
}
}
});
});
Run Code Online (Sandbox Code Playgroud)
或者,additional-methods.js
您可以拔出该phoneUS
方法,而不是包含整个文件.
$(document).ready(function () {
jQuery.validator.addMethod("phoneUS", function (phone_number, element) {
phone_number = phone_number.replace(/\s+/g, "");
return this.optional(element) || phone_number.length > 9 && phone_number.match(/^(\+?1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/);
}, "Please specify a valid phone number");
$('#myform').validate({ // initialize the plugin
rules: {
phone_number: {
required: true,
phoneUS: true
}
}
});
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
39833 次 |
最近记录: |