2010-08-19 61 views
8

問題 我想驗證一個字段使用自定義驗證程序我創建的本質上是一個電話號碼的正則表達式如果該字段有一個值,否則它不會'因爲它是可選的,所以需要驗證。jQuery驗證插件:驗證可選字段

自定義的驗證:

$.validator.addMethod('phone', function (value) { 
     return /^[01]?[- .]?\(?[2-9]\d{2}\)?[- .]?\d{3}[- .]?\d{4}$/.test(value); 
    }, 'Please enter a valid US phone number.'); 

規則:

phone: { 
    required: true, 
    phone: true 
}, 
fax: { 
    phone: true 
} 

我甚至試過:

phone: { 
    required: true, 
    phone: true 
}, 
fax: { 
    required: function(element){ 
    if (!$("#cf-fax").val()) { return true; } else { return false; } 
    } 
    phone: true 
} 

供參考,這是我想引用領域:

<input type="text" name="fax" class="optional" size="15" maxlength="14" id="cf-fax" /> 

任何幫助表示讚賞,因爲我只是失落。 = \

回答

13

可以調用.optional()(驗證插件內所定義的)類似這樣的

$.validator.addMethod('phone', function (value, element) { 
    return this.optional(element) || /^[01]?[- .]?\(?[2-9]\d{2}\)?[- .]?\d{3}[- .]?\d{4}$/.test(value); 
}, 'Please enter a valid US phone number.'); 

這是驗證插件,take a look at their additional methods here用於實施例中的標準方案。

+0

好神聖的廢話,工作!謝謝你。我將深入討論您提到的其他方法。 – creativetim 2010-08-19 21:54:37

+0

@creativetim - 歡迎:)並歡迎來到SO !,請務必通過答案左側的複選標記接受解決您問題的答案:) – 2010-08-19 21:58:59

+0

It does!完成並完成。 – creativetim 2010-08-19 22:02:25