jQuery驗證框架
javascript
- <script type="text/javascript" src=js/jquery-1.3.2.min.js></script>
- <script type="text/javascript" src=js/jquery.validate.pack.js></script>
- <script type="text/javascript">
- $(document).ready(function(){
- $("#textForm").validate();
- });
- </script>
- <form class="cmxform" id="commentForm" method="get" action="">
- Name<input id="cname" name="name" size="25" class="required" minlength="2" />
- <input class="submit" type="submit" value="Submit"/>
- </form>
<script type="text/javascript" src=js/jquery-1.3.2.min.js></script>
<script type="text/javascript" src=js/jquery.validate.pack.js></script>
<script type="text/javascript">
$(document).ready(function(){
$("#textForm").validate();
});
</script>
<form class="cmxform" id="commentForm" method="get" action="">
Name<input id="cname" name="name" size="25" class="required" minlength="2" />
<input class="submit" type="submit" value="Submit"/>
</form>
此文謹以以上js片斷開始介紹jQuery Validation。
驗證從這個方法開始:validate( [options] )
1、可選項( options )
[1] debug 類型:Boolean 默認:false
說明:開啓調試模式。若是爲true,表單不會提交,並且會在控制檯顯示一些錯誤消息(須要Firebug或者Firebug lite)。當要阻止表單默認提交事件,嘗試去開啓它。html
- $(".selector").validate({
- debug: true
- })
$(".selector").validate({
debug: true
})
[2] submitHandler 類型:Callback 默認:default (native) form submit
說明:當表單經過驗證,提交表單。回調函數有個默認參數formjava
- $(".selector").validate({
- submitHandler: function(form) {
-
- form.submit();
- }
- })
$(".selector").validate({
submitHandler: function(form) {
// do other stuff for a valid form
form.submit();
}
})
[3] invalidHandler 類型:Callback
說明:當未經過驗證的表單提交時,能夠在該回調函數中處理一些事情。該回調函數有兩個參數:第一個爲一個事件對象,第二個爲驗證器(validator)jquery
- $(".selector").validate({
- invalidHandler: function(form, validator) {
- var errors = validator.numberOfInvalids();
- if (errors) {
- var message = errors == 1
- ? 'You missed 1 field. It has been highlighted'
- : 'You missed ' + errors + ' fields. They have been highlighted';
- $("div.error span").html(message);
- $("div.error").show();
- } else {
- $("div.error").hide();
- }
- }
- })
$(".selector").validate({
invalidHandler: function(form, validator) {
var errors = validator.numberOfInvalids();
if (errors) {
var message = errors == 1
? 'You missed 1 field. It has been highlighted'
: 'You missed ' + errors + ' fields. They have been highlighted';
$("div.error span").html(message);
$("div.error").show();
} else {
$("div.error").hide();
}
}
})
[4] ignore 類型:Seletor
說明:當進行表單驗證時,過濾掉選擇器所選擇的表單。用了jQuery not方法( not() )。類型爲submit和reset的表單老是被忽略的。app
- $("#myform").validate({
- ignore: ".ignore"
- })
$("#myform").validate({
ignore: ".ignore"
})
[5] rules 類型:Options 默認:rules are read from markup (classes, attributes, metadata)
說明:用戶定義的鍵/值對規則。鍵爲一個表單元素的 name屬性(或是一組單選/複選按鈕)、值爲一個簡單的字符串或者由規則/參數對(rule/parameter)組成的一個對象。能夠和 class/attribute/metadata 規則一塊兒使用。每一個規則能夠指定一個依存的驗證前提條件。框架
- $(".selector").validate({
- rules: {
-
- name: "required",
-
- email: {
- required: true,
- email: true
- }
-
-
-
-
-
- }
- })
$(".selector").validate({
rules: {
// simple rule, converted to {required:true}
name: "required",
// compound rule
email: {
required: true,
email: true
}/*
email: {
depends: function(element) {
return $("#contactform_email:checked")
}
}*/
}
})
[6] messages 類型:Options 默認:驗證方法默認使用的消息
說明:用戶自定義的 鍵/值 對消息。鍵爲一個表單元素的name屬性,值爲該表單元素將要顯示的消息。該消息覆蓋元素的title屬性或者默認消息。消息能夠是一個字符串或者一個回 調函數。回調函數必須在驗證器的做用域中調用,將規則參數做爲回調函數的第一個參數,將該表單元素做爲回調函數的第二個參數,且必須返回一個字符串類型的 消息。dom
- $(".selector").validate({
- rules: {
- name: "required",
- email: {
- required: true,
- email: true
- }
- },
- messages: {
- name: "Please specify your name",
- email: {
- required: "We need your email address to contact you",
- email: "Your email address must be in the format of name@domain.com"
- }
- }
- })
$(".selector").validate({
rules: {
name: "required",
email: {
required: true,
email: true
}
},
messages: {
name: "Please specify your name",
email: {
required: "We need your email address to contact you",
email: "Your email address must be in the format of name@domain.com"
}
}
})
[7] groups 類型:Options
說明:指定錯誤消息分組。一個組由一個任意的組名做爲鍵,一個由空白符分割的表單元素name屬性列表做爲值。用errorPlacement定義組消息的存放位置。ide
- $("#myform").validate({
- groups: {
- username: "fname lname"
- },
- errorPlacement: function(error, element) {
- if (element.attr("name") == "fname"
- || element.attr("name") == "lname" )
- error.insertAfter("#lastname");
- else
- error.insertAfter(element);
- },
- debug:true
- })
$("#myform").validate({
groups: {
username: "fname lname"
},
errorPlacement: function(error, element) {
if (element.attr("name") == "fname"
|| element.attr("name") == "lname" )
error.insertAfter("#lastname");
else
error.insertAfter(element);
},
debug:true
})
[8] onsubmit 類型:Boolean 默認:true
說明:提交時驗證表單。當設置爲false時,只能用其它的事件驗證。函數
- $(".selector").validate({
- onsubmit: false
- })
$(".selector").validate({
onsubmit: false
})
[9] onfocusout 類型:Boolean 默認:true
說明:焦點離開時驗證(單選/複選按鈕除外)。若是表單中沒有輸入任何內容,全部的規則將被跳過,除非該表單已經被標記爲無效的。工具
- $(".selector").validate({
- onfocusout: false
- })
$(".selector").validate({
onfocusout: false
})
[10] onkeyup 類型:Boolean 默認:true
說明:當鍵盤按鍵彈起時驗證。只要表單元素沒有被標記成無效的,不會有反應。另外,全部的規則將在每次按鍵彈起時驗證。
- $(".selector").validate({
- onkeyup: false
- })
$(".selector").validate({
onkeyup: false
})
[11] onclick 類型:Boolean 默認:true
說明:鼠標點擊驗證針對單選和複選按鈕。
- $(".selector").validate({
- onclick: false
- })
$(".selector").validate({
onclick: false
})
[12] focusInvalid 類型:Boolean 默認:true
說明:當驗證無效時,焦點跳到第一個無效的表單元素。當爲false時,驗證無效時,沒有焦點響應。
- $(".selector").validate({
- focusInvalid: false
- })
$(".selector").validate({
focusInvalid: false
})
[12] focusCleanup 類型:Boolean 默認:false
說明:若是爲true,當表單獲得焦點時,移除在該表單上的errorClass並隱藏全部錯誤消息。避免與focusInvalid一塊兒使用。
- $(".selector").validate({
- focusCleanup: true
- })
$(".selector").validate({
focusCleanup: true
})
[13] meta 類型:String
說明:若是想使用其它插件來使用元數據驗證規則,得指定相應的元數據對象。
- $("#myform").validate({
- meta: "validate"
- })
- <input type="text" name="email" class="{validate:{ required: true, email:true}}" />
$("#myform").validate({
meta: "validate"
})
<input type="text" name="email" class="{validate:{ required: true, email:true}}" />
[14] errorClass 類型:String 默認:"error"
說明:用此設定的樣式來定義錯誤消息的樣式。
- $(".selector").validate({
- errorClass: "invalid"
- })
$(".selector").validate({
errorClass: "invalid"
})
[15] validClass 類型:String 默認:"valid"
說明:設定當驗證經過時,消息顯示的樣式。
- $(".selector").validate({
- validClass: "success"
- })
$(".selector").validate({
validClass: "success"
})
[16] errorElement 類型:String 默認:"label"
說明:用html元素類型建立錯誤消息的容器。默認的"label"有個優勢就是能在錯誤消息與無效表單之間用for屬性創建有意義的聯繫(一個經常使用的,而無論表單元素是什麼的)。
- $(".selector").validate({
- errorElement: "em"
- })
$(".selector").validate({
errorElement: "em"
})
[17] wrapper 類型:Boolean
說明:用一個指定的元素將錯誤消息包圍。與errorLabelContainer一塊兒建立一個錯誤消息列表很是有用。
- $(".selector").validate({
- wrapper: "li"
- })
$(".selector").validate({
wrapper: "li"
})
[18] errorLabelContainer 類型:Selector
說明:錯誤消息標籤的容器。
- $("#myform").validate({
- errorLabelContainer: "#messageBox",
- wrapper: "li"
- })
$("#myform").validate({
errorLabelContainer: "#messageBox",
wrapper: "li"
})
[19] errorContainer 類型:Selector
說明:錯誤消息的容器。
- $("#myform").validate({
- errorContainer: "#messageBox1, #messageBox2",
- errorLabelContainer: "#messageBox1 ul",
- wrapper: "li", debug:true,
- submitHandler: function() { alert("Submitted!") }
- })
$("#myform").validate({
errorContainer: "#messageBox1, #messageBox2",
errorLabelContainer: "#messageBox1 ul",
wrapper: "li", debug:true,
submitHandler: function() { alert("Submitted!") }
})
[20] showErrors 類型:Callback 默認:None,內置的顯示消息
說明:自定義消息顯示的句柄。該回調函數有兩個參數,第一 個爲errorMap,第二個參數爲errorList,在validator對象的上下文中調用。參數只包含那些通過onblur/onkeyup驗證 的表單元素,也有多是單個元素。除此以外,你還能夠用this.defaultShowErrors()觸發默認的行爲。
- $(".selector").validate({
- showErrors: function(errorMap, errorList) {
- $("#summary").html("Your form contains "
- + this.numberOfInvalids()
- + " errors, see details below.");
- this.defaultShowErrors();
- }
- })
$(".selector").validate({
showErrors: function(errorMap, errorList) {
$("#summary").html("Your form contains "
+ this.numberOfInvalids()
+ " errors, see details below.");
this.defaultShowErrors();
}
})
[21] errorPlacement 類型:Callback 默認:緊跟在無效表單後的標籤中
說明:用戶自定義錯誤標籤的顯示位置。第一個參數:一個做爲jQuery對象的錯誤標籤,第二個參數爲:一個做爲jQuery對象的未經過驗證的表單元素。
- $("#myform").validate({
- errorPlacement: function(error, element) {
- error.appendTo( element.parent("td").next("td") );
- },
- debug:true
- })
$("#myform").validate({
errorPlacement: function(error, element) {
error.appendTo( element.parent("td").next("td") );
},
debug:true
})
[22] success 類型:String,Callback
說明:若是指定它,當驗證經過時顯示一個消息。若是是String類型的,則添加該樣式到標籤中,若是是一個回調函數,則將標籤做爲其惟一的參數。
- $("#myform").validate({
-
- success: function(label) {
- label.addClass("valid").text("Ok!")
- }
- })
$("#myform").validate({
//success: "valid",
success: function(label) {
label.addClass("valid").text("Ok!")
}
})
[23] highlight 類型:Callback 默認:添加errorClass到表單元素
說明:將未經過驗證的表單元素設置高亮。
- $(".selector").validate({
- highlight: function(element, errorClass) {
- $(element).fadeOut(function() {
- $(element).fadeIn()
- })
- }
- })
$(".selector").validate({
highlight: function(element, errorClass) {
$(element).fadeOut(function() {
$(element).fadeIn()
})
}
})
[24] unhighlight 類型:Callback 默認:移除errorClass
說明:與highlight操做相反
- $(".selector").validate({
- highlight: function(element, errorClass) {
- $(element).addClass(errorClass);
- $(element.form).find("label[for=" + element.id + "]")
- .addClass(errorClass);
- },
- unhighlight: function(element, errorClass) {
- $(element).removeClass(errorClass);
- $(element.form).find("label[for=" + element.id + "]")
- .removeClass(errorClass);
- }
- });
$(".selector").validate({
highlight: function(element, errorClass) {
$(element).addClass(errorClass);
$(element.form).find("label[for=" + element.id + "]")
.addClass(errorClass);
},
unhighlight: function(element, errorClass) {
$(element).removeClass(errorClass);
$(element.form).find("label[for=" + element.id + "]")
.removeClass(errorClass);
}
});
[25] ignoreTitle 類型:Boolean 默認:false
說明:設置它用來跳過錯誤消息對title屬性的引用,避免Google工具欄引發的衝突。
- $(".selector").validate({
- ignoreTitle: true
- })