本測試使用v1.8.1
範例:
首先匯入需要的js(jquery.core.js為jQuery函式庫)
<script type="text/javascript" src="../js/plugins/jquery.core.js"></script> <script type="text/javascript" src="../js/plugins/jquery.validate.js"></script>
初始化驗證器,有許多options可以使用,
在此簡單加了一條rules,message,submitHandler
Tip:校驗的元素請一定要設name的屬性
<script>
$(function(){
$("#registerForm").validate({
rules:{
username:{
required: true,
maxlength: 20,
minlength:3
},
password:{
required : true,
minlength:4,
maxlength:20
},
retypepwd: {
required: true,
equalTo: $("#password")
},
email:{
required : true,
email:true
},
submitHandler: function(form) {
//console.log("do other stuff for a valid form");
form.submit();
}
});
});
</script>
<form id="registerForm" method="post"> <p> <label for="username">username(*)</label> <input id="username" name="username" class="required" minlength="5" /> </p> <p> <label for="password">password(*)</label> <input id="password" name="password" class="required " minlength="4" /> </p> <p> <label for="retypepwd">retype-password(*)</label> <input id="retypepwd" name="retypepwd" class="required " minlength="4" /> </p> <p> <label for="email">Email(*)</label> <input id="email" name="email" class="required email" /> </p> <p> <input class="submit" type="submit" value="Submit"/> </p> </form>
rules 內建的校驗規則
請參考官方文件:http://docs.jquery.com/Plugins/Validation#Validator
custom rules 自訂校驗規則
//新增自訂的校驗規則
$.validator.addMethod( "alphabetnumber" , function(value,element){
var re = /^[a-zA-Z0-9]+$/g;
return value.match(re);
});
//使用自訂的alphabetnumber校驗規則
rules:{ password:{ required : true, minlength:4, maxlength:20, alphabetnumber:true }
//使用自訂的校驗訊息
messages :
{
//password is input element id in the from password:
password:
{ required: "請輸入您的密碼.",
minlength: "密碼不能小於4字元.",
maxlength: "密碼不能長於20字元",
alphabetnumber:"只能輸入英文與數字"
}
}
custom messages 自訂校驗訊息
自定義錯誤信息,格式與rules類似。需要注意的是如果使用此項,那麼所有的校驗項都必需自定義出錯信息,如果只想定義其中的某一些,那麼就把其它的出錯信息定義為空(即""),系統即會使用默認值。
messages :{
//password is input element id in the from
password: {
required: "請輸入您的密碼."
minlength: "密碼不能小於5位.",
maxlength: "密碼不能長於32位."
}
}
position of error message of custom 自訂校驗訊息顯示位置(2011/9/21)
如果你想變更錯誤訊息的顯示位置你可以使用errorPlacement來覆寫
error: 錯誤訊息元素
element:校驗元素
errorPlacement:function(error, element){
//判斷你要是否為你要變更位置的元素
if($(element).attr("name") == "user_search"){
if(element.parent().next().attr("class") == "error"){
element.parent().next().remove();
}
//重新插入錯誤訊息的位置
error.css("display","block").insertAfter(element.parent());
}
},
Reset form and error message of rules重設表單與校驗錯誤訊息(2011/9/21)
動態變更錯誤訊息(2012/04/03)
自定義錯誤信息,格式與rules類似。
messages :{
//password is input element id in the from
password: {
required: "請輸入您的密碼."
minlength: "密碼不能小於5位.",
maxlength: "密碼不能長於32位."
}
}
position of error message of custom 自訂校驗訊息顯示位置(2011/9/21)
如果你想變更錯誤訊息的顯示位置你可以使用errorPlacement來覆寫
error: 錯誤訊息元素
element:校驗元素
errorPlacement:function(error, element){
//判斷你要是否為你要變更位置的元素
if($(element).attr("name") == "user_search"){
if(element.parent().next().attr("class") == "error"){
element.parent().next().remove();
}
//重新插入錯誤訊息的位置
error.css("display","block").insertAfter(element.parent());
}
},
Reset form and error message of rules重設表單與校驗錯誤訊息(2011/9/21)
//初始化請另外用一個變數儲存整個validate物件
var v = $("#yourfrom").validate();
// code to reset form
$("#yourfrom").resetForm();
動態變更錯誤訊息(2012/04/03)
$.validator.addMethod( "passwordrule" , function(value,element){
var re = /^[a-zA-Z0-9@%\\+\/'!#$\^\?:\(\)\{\}\[\]~\-_]+$/g;
var searchStr = value;
var reElse = /[^a-zA-Z0-9@%\\+\/'!#$\^\?:\(\)\{\}\[\]~\-_]{1}/g;
var result = searchStr.match(reElse);
if(result != null){
//console.log("invalid chars:" + result.toString());
//dynamic setting message
this.settings.messages[element.name].passwordrule
= $.printf(global_validate_only_passwordrule,[result.toString()]);
}
return value.match(re);
});

你幫了我大忙,真的太謝謝你了!!
回覆刪除期待你有新的分享 ^^
謝謝指教LoL
回覆刪除