JQuery擴展插件Validate—6 radio、checkbox、select的驗證
更新時間:2011年09月05日 21:53:43 作者:
radio、checkbox、select的驗證其實方法與前面提到沒有太大的區(qū)別,但問題是錯誤信息會顯示在同一組的第一個元素后面
效果如下所示:
<script type="text/javascript">
jQuery.validator.addMethod("regex", //addMethod第1個參數(shù):方法名稱
function(value, element, params) { //addMethod第2個參數(shù):驗證方法,
//驗證方法參數(shù)(被驗證元素的值,被驗證元素,參數(shù))
var exp = new RegExp(params); //實例化正則對象,參數(shù)為用戶傳入的正則表達式
return exp.test(value); //測試是否匹配
},
"格式錯誤");
$(function() {
$("#signupForm").validate(
{
rules: {
txtPassword1: "required", //密碼1必填
txtPassword2: { //密碼2的描述多于1項使用對象類型
required: true, //必填,這里可以是一個匿名方法
equalTo: "#txtPassword1", //必須與密碼1相等
rangelength: [5, 10], //長度5-10之間
regex: "^\\w+$" //使用自定義的驗證規(guī)則
},
txtEmail: "email", //電子郵箱必須合法
sex: "required"
},
messages: { //對應上面的錯誤信息
txtPassword1: "您必須填寫",
txtPassword2: {
required: "您必須填寫",
equalTo: "密碼不一致",
rangelength: "長度必須介于{0} 和 {1} 之間的字符串",
regex: "密碼只能是數(shù)字、字母與下劃線"
}
},
//在上例中新增的部分
errorPlacement: function(error, element) { //指定錯誤信息位置
if (element.is(':radio') || element.is(':checkbox')) { //如果是radio或checkbox
var eid = element.attr('name'); //獲取元素的name屬性
error.appendTo(element.parent()); //將錯誤信息添加當前元素的父結點后面
} else {
error.insertAfter(element);
}
},
debug: false, //如果修改為true則表單不會提交
submitHandler: function() {
alert("開始提交了");
}
});
});
</script> <p>
<label for="sex">
性別</label>
<input type="radio" id="rdoFemale" name="sex" />男
<input type="radio" id="rdoMale" name="sex" />女
</p>
解決這個問題的辦法是將錯誤信息指定到一個特定的位置,validate()方法的參數(shù)中可以進行自定義,示例代碼如下:
復制代碼 代碼如下:
<script type="text/javascript">
jQuery.validator.addMethod("regex", //addMethod第1個參數(shù):方法名稱
function(value, element, params) { //addMethod第2個參數(shù):驗證方法,
//驗證方法參數(shù)(被驗證元素的值,被驗證元素,參數(shù))
var exp = new RegExp(params); //實例化正則對象,參數(shù)為用戶傳入的正則表達式
return exp.test(value); //測試是否匹配
},
"格式錯誤");
$(function() {
$("#signupForm").validate(
{
rules: {
txtPassword1: "required", //密碼1必填
txtPassword2: { //密碼2的描述多于1項使用對象類型
required: true, //必填,這里可以是一個匿名方法
equalTo: "#txtPassword1", //必須與密碼1相等
rangelength: [5, 10], //長度5-10之間
regex: "^\\w+$" //使用自定義的驗證規(guī)則
},
txtEmail: "email", //電子郵箱必須合法
sex: "required"
},
messages: { //對應上面的錯誤信息
txtPassword1: "您必須填寫",
txtPassword2: {
required: "您必須填寫",
equalTo: "密碼不一致",
rangelength: "長度必須介于{0} 和 {1} 之間的字符串",
regex: "密碼只能是數(shù)字、字母與下劃線"
}
},
//在上例中新增的部分
errorPlacement: function(error, element) { //指定錯誤信息位置
if (element.is(':radio') || element.is(':checkbox')) { //如果是radio或checkbox
var eid = element.attr('name'); //獲取元素的name屬性
error.appendTo(element.parent()); //將錯誤信息添加當前元素的父結點后面
} else {
error.insertAfter(element);
}
},
debug: false, //如果修改為true則表單不會提交
submitHandler: function() {
alert("開始提交了");
}
});
});
</script> <p>
<label for="sex">
性別</label>
<input type="radio" id="rdoFemale" name="sex" />男
<input type="radio" id="rdoMale" name="sex" />女
</p>
運行結果如下:
此外:如果在參數(shù)中加上debug:true則只用于調試表單不會提交到服務器; submitHandler: function() {}將會在表單提交到服務器前執(zhí)行一些操作;用remote可以進行Ajax驗證,好像有個小bug;在使用ASP.NET與validate組合使用時會有一些問題可以參考網友的博文。
源碼下載
相關文章
淺談jquery.fn.extend與jquery.extend區(qū)別
本文給大家簡單描述了下jquery.fn.extend與jquery.extend的概念以及區(qū)別,十分的實用,有需要的小伙伴可以參考下。2015-07-07
動態(tài)設置form表單的action屬性的值的簡單方法
下面小編就為大家?guī)硪黄獎討B(tài)設置form表單的action屬性的值的簡單方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-05-05

