easyui關(guān)于validatebox實(shí)現(xiàn)多重規(guī)則驗(yàn)證的方法(必看)
方法一:
自從1.3.2版本開(kāi)始,validatebox自身已經(jīng)支持多重校驗(yàn)了,例如:
<input class="easyui-validatebox" data-options="required:true,validType:['email','length[0,20]']">
方法二:(不太好用,試了半天還是不顯示第二個(gè)驗(yàn)證的消息)
對(duì)于1.5版本的easyui.min,注釋掉以下代碼:

然后再添加
$.extend($.fn.validatebox.defaults.rules, {
multiple : {
validator : function(value, vtypes) {
var returnFlag = true;
var opts = $.fn.validatebox.defaults;
for (var i = 0; i < vtypes.length; i++) {
var methodinfo = /([a-zA-Z_]+)(.*)/.exec(vtypes[i]);
var rule = opts.rules[methodinfo[1]];
if (value && rule) {
var parame = eval(methodinfo[2]);
if (!rule["validator"](value, parame)) {
returnFlag = false;
this.message = rule.message;
break;
}
}
}
return returnFlag;
}
},
length : {
validator : function(value, param) {
this.message = 'Please enter a value between {0} and {1}.';
var len = $.trim(value).length;
if (param) {
for (var i = 0; i < param.length; i++) {
this.message = this.message.replace(new RegExp(
"\\{" + i + "\\}", "g"), param[i]);
}
}
return len >= param[0] && len <= param[1];
},
message : 'Please enter a value between {0} and {1}.'
}
});
調(diào)用方法
<input class="easyui-validatebox" data-options="required:true,validType:'multiple[\'email\',\'length[0,20]\']'">
方法三:(可以實(shí)現(xiàn)兩種驗(yàn)證的消息)
$.extend($.fn.validatebox.defaults.rules, {
minLength : {
validator : function (value, param) {
var rules = $.fn.validatebox.defaults.rules;
rules.minLength.message = 'Please enter at least {0} characters.';
if(!rules.email.validator(value)){
rules.minLength.message = rules.email.message;
return false;
}
if(!rules.length.validator(value,param)){
rules.minLength.message = rules.length.message;
return false;
}
return value.length >= param[0];
},
message : ''
}
});
根據(jù)方法三的試驗(yàn):
$.extend($.fn.validatebox.defaults.rules, {
//再次輸入密碼效驗(yàn)(與上一次一樣;密碼介于6-16位)
checkpwd: {
validator: function (value, param) {
var rules = $.fn.validatebox.defaults.rules;
rules.checkpwd.message = 'Please enter at least {0} characters.';
if (!rules.passequals.validator(value,param)) {
rules.checkpwd.message = rules.passequals.message;
return false;
}
if (!rules.minlength.validator(value)) {
rules.checkpwd.message = rules.minlength.message;
return false;
}
return value.length >= param[0];
},
message: ''
},
passequals: {
validator: function (value, param) {
return value == $(param[0]).val();
},
message: '兩次密碼不一致.'
},
minlength: {
validator: function (value) {
var len = $.trim(value).length;
return len >=6 && len <= 16;
},
message: "輸入內(nèi)容長(zhǎng)度必須介于6和16之間."
}
});
調(diào)用:(注意pwd兩邊不能寫(xiě)引號(hào))
<input id="pwd" name="pwd" type="password" class="easyui-validatebox" /> <input id="rpwd" name="rpwd" type="password" class="easyui-validatebox" data-options="validType:'checkpwd[pwd]'" />
附錄: 可以參考的驗(yàn)證規(guī)則:
idcard: {// 驗(yàn)證身份證
validator: function (value) {
return /^\d{15}(\d{2}[A-Za-z0-9])?$/i.test(value);
},
message: '身份證號(hào)碼格式不正確'
},
minLength: {
validator: function (value, param) {
return value.length >= param[0];
},
message: '請(qǐng)輸入至少(2)個(gè)字符.'
},
length: { validator: function (value, param) {
var len = $.trim(value).length;
return len >= param[0] && len <= param[1];
},
message: "輸入內(nèi)容長(zhǎng)度必須介于{0}和{1}之間."
},
phone: {// 驗(yàn)證電話號(hào)碼
validator: function (value) {
return /^((\d{2,3})|(\d{3}\-))?(0\d{2,3}|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/i.test(value);
},
message: '格式不正確,請(qǐng)使用下面格式:020-88888888'
},
mobile: {// 驗(yàn)證手機(jī)號(hào)碼
validator: function (value) {
return /^(13|15|18)\d{9}$/i.test(value);
},
message: '手機(jī)號(hào)碼格式不正確'
},
intOrFloat: {// 驗(yàn)證整數(shù)或小數(shù)
validator: function (value) {
return /^\d+(\.\d+)?$/i.test(value);
},
message: '請(qǐng)輸入數(shù)字,并確保格式正確'
},
currency: {// 驗(yàn)證貨幣
validator: function (value) {
return /^\d+(\.\d+)?$/i.test(value);
},
message: '貨幣格式不正確'
},
qq: {// 驗(yàn)證QQ,從10000開(kāi)始
validator: function (value) {
return /^[1-9]\d{4,9}$/i.test(value);
},
message: 'QQ號(hào)碼格式不正確'
},
integer: {// 驗(yàn)證整數(shù) 可正負(fù)數(shù)
validator: function (value) {
//return /^[+]?[1-9]+\d*$/i.test(value);
return /^([+]?[0-9])|([-]?[0-9])+\d*$/i.test(value);
},
message: '請(qǐng)輸入整數(shù)'
},
age: {// 驗(yàn)證年齡
validator: function (value) {
return /^(?:[1-9][0-9]?|1[01][0-9]|120)$/i.test(value);
},
message: '年齡必須是0到120之間的整數(shù)'
},
chinese: {// 驗(yàn)證中文
validator: function (value) {
return /^[\Α-\¥]+$/i.test(value);
},
message: '請(qǐng)輸入中文'
},
english: {// 驗(yàn)證英語(yǔ)
validator: function (value) {
return /^[A-Za-z]+$/i.test(value);
},
message: '請(qǐng)輸入英文'
},
unnormal: {// 驗(yàn)證是否包含空格和非法字符
validator: function (value) {
return /.+/i.test(value);
},
message: '輸入值不能為空和包含其他非法字符'
},
username: {// 驗(yàn)證用戶名
validator: function (value) {
return /^[a-zA-Z][a-zA-Z0-9_]{5,15}$/i.test(value);
},
message: '用戶名不合法(字母開(kāi)頭,允許6-16字節(jié),允許字母數(shù)字下劃線)'
},
faxno: {// 驗(yàn)證傳真
validator: function (value) {
// return /^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/i.test(value);
return /^((\d{2,3})|(\d{3}\-))?(0\d{2,3}|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/i.test(value);
},
message: '傳真號(hào)碼不正確'
},
zip: {// 驗(yàn)證郵政編碼
validator: function (value) {
return /^[1-9]\d{5}$/i.test(value);
},
message: '郵政編碼格式不正確'
},
ip: {// 驗(yàn)證IP地址
validator: function (value) {
return /d+.d+.d+.d+/i.test(value);
},
message: 'IP地址格式不正確'
},
name: {// 驗(yàn)證姓名,可以是中文或英文
validator: function (value) {
return /^[\Α-\¥]+$/i.test(value) | /^\w+[\w\s]+\w+$/i.test(value);
},
message: '請(qǐng)輸入姓名'
},
date: {// 驗(yàn)證姓名,可以是中文或英文
validator: function (value) {
//格式y(tǒng)yyy-MM-dd或yyyy-M-d
return /^(?:(?!0000)[0-9]{4}([-]?)(?:(?:0?[1-9]|1[0-2])\1(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])\1(?:29|30)|(?:0?[13578]|1[02])\1(?:31))|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)([-]?)0?2\2(?:29))$/i.test(value);
},
message: '清輸入合適的日期格式'
},
msn: {
validator: function (value) {
return /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(value);
},
message: '請(qǐng)輸入有效的msn賬號(hào)(例:abc@hotnail(msn/live).com)'
},
same: {
validator: function (value, param) {
if ($("#" + param[0]).val() != "" && value != "") {
return $("#" + param[0]).val() == value;
} else {
return true;
}
},
message: '兩次輸入的密碼不一致!'
}
以上這篇easyui關(guān)于validatebox實(shí)現(xiàn)多重規(guī)則驗(yàn)證的方法(必看)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
原生JS操作網(wǎng)頁(yè)給p元素添加onclick事件及表格隔行變色
原生JS操作網(wǎng)頁(yè),給網(wǎng)頁(yè)中的所有p元素添加onclick事件,使一個(gè)特定的表格隔行變色等等,感興趣的朋友可以參考下2013-12-12
javascript實(shí)現(xiàn)校驗(yàn)文件上傳控件實(shí)例
這篇文章主要介紹了javascript實(shí)現(xiàn)校驗(yàn)文件上傳控件,實(shí)例分析了javascript檢測(cè)上傳文件類型是否為圖片的功能,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04
原生js提示框并自動(dòng)關(guān)閉(手工關(guān)閉)
今天在寫(xiě)后臺(tái)交互的時(shí)候原來(lái)都是用alert太難看每次都需要點(diǎn)擊一下才可以,比較麻煩所以特整理了幾個(gè)比較好的js提示框代碼,方便提示一下2023-04-04
JavaScript組合設(shè)計(jì)模式--改進(jìn)引入案例分析
這篇文章主要介紹了JavaScript組合設(shè)模式改進(jìn)引入案例,結(jié)合實(shí)例形式分析了JavaScript組合設(shè)計(jì)模式特性改進(jìn)的引入示例相關(guān)操作技巧,需要的朋友可以參考下2020-05-05
javascript時(shí)間自動(dòng)刷新實(shí)現(xiàn)原理與步驟
javascript時(shí)間自動(dòng)刷新在應(yīng)用中很常見(jiàn),本人今天整理了一些,感興趣的朋友可以參考下哦2013-01-01
總結(jié)Javascript中數(shù)組各種去重的方法
相信大家都知道網(wǎng)上關(guān)于Javascript中數(shù)組去重的方法很多,這篇文章給大家總結(jié)Javascript中數(shù)組各種去重的方法,相信本文對(duì)大家學(xué)習(xí)和使用Javascript具有一定的參考借鑒價(jià)值,有需要的下面來(lái)一起看看。2016-10-10

