如何向jQuery Validation插件添加自定义但不是必需的方法?

时间:2012-01-24 20:07:21

标签: jquery jquery-validate

我正在为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">

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));
});

它将在所有手机字段上运行该方法,因此这样您可以允许它们在未经测试的情况下传递,除非它们实际包含内容。