我正在为jQuery Validation插件添加一个自定义方法来检查有效的电话号码。但是,我希望此字段是可选的,而不是必需的。出于某种原因,当我添加以下代码时,它也需要使用类“phone”的字段。我有什么想法吗?
$.validator.addMethod("phone", function(ph, element) {
var stripped = ph.replace(/[\s()+-]|ext\.?/gi, "");
// 10 is the minimum number of numbers required
return ((/\d{10,}/i).test(stripped));
});
$('#custom').validate({
errorPlacement: function(error, element) {
return true;
}
});
<input type="text" class="phone" name="phone_1" id="phone_1">
答案 0 :(得分:4)
您需要更新您的方法,以便在手机字段为空时返回true。 类似的东西:
$.validator.addMethod("phone", function(ph, element) {
if(ph=='') return true;
var stripped = ph.replace(/[\s()+-]|ext\.?/gi, "");
// 10 is the minimum number of numbers required
return ((/\d{10,}/i).test(stripped));
});
它将在所有手机字段上运行该方法,因此这样您可以允许它们在未经测试的情况下传递,除非它们实际包含内容。