2016-04-10 19 views
-1

我使用jQuery格式化迫使模式爲我們的手機號碼如何在jQuery驗證

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

如何添加到jQuery驗證規則中使用的移動模式。因爲當該字段爲空時。我只能設置所需的。

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

你可以使用HTML5的'pattern'屬性。這會更方便。 –

+0

但我需要使用jquery驗證 – Boy

回答

1

小提琴 - 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驗證插件早已額外的驗證方法定義爲驗證USononumber等。參考https://github.com/jzaefferer/jquery-validation/tree/master/src/additional

2)在這個例子中,我已經把正則表達式基於你期望的格式,但是這可以被修改以更正確地驗證電話號碼。

+1

上面的代碼不適合你嗎? – koolhuman

+0

其作品謝謝 – Boy

2

Read the documentation。在jQuery Validate中有一個pattern規則。但是,您需要包含the additional-methods.js file

一旦包含,pattern可以選擇通過HTML5 pattern屬性聲明。否則,可以使用.validate().rules()來聲明,就像任何其他規則一樣。

順便說一句 - 該additional-methods.js文件已包含您可以使用的各種電話號碼格式的規則。


至於這個代碼...

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

這完全是多餘的和不必要的。您將所有元素與class="required"匹配,並以編程方式應用required規則。但是,插件自動required規則應用於class="required"的任何表單元素。

+0

對您的「必需」類筆記有意義。乾杯! – koolhuman