作為easyui的校驗外掛程式沒有實現多重校驗能力是一種缺憾。比如說,既要限制格式為email,同時要求最長長度為20,我們就要擴充套件一種規則,而對長度的要求很容易變化,如果變成要求30,我們又得擴張一種規則,所以對於多重驗證的需求很必要。
實現思路較為簡單,擴充套件一種新規則:multiple,入參為其它規則,然後遍歷每個規則,遇到校驗不通過的時候就返回失敗,並且返回對應的提示訊息。思路比較簡單,不過正規表示式技巧的使用還是很漂亮的,個人歲暫時不動正則,不過覺得它很優美,所以我很快就會懂的,哈哈。直接上**了。
實現**:
$.extend($.fn.validatebox.defaults.rules, }}
return returnflag;}}
});
經過以上的擴充套件,多重校驗算是實現了,但是驗證不通過時的提示資訊卻出現了問題,當第二個驗證器驗證失敗的時候,提示資訊會將第乙個驗證器的提示資訊參雜進來。究其原因是validatebox內部提示資訊的實現邏輯不合理,在呼叫驗證器的validator函式之後,又對驗證器的message屬性做包裝。
個人覺得提示資訊應該完全在驗證器內部實現,在外部再做包裝是完全不合理的。其實這種情況目前主要就是為了處理length型別的驗證器的提示資訊,所以解決方案也比較明確和唯一:
對於1.3.1版本,大概在5060行,注釋掉以下**:
//if(_396)","g"),_396[i]);
//}//}
覆寫length型別驗證器:
$.extend($.fn.validatebox.defaults.rules, }}
return returnflag;}},
length : and .';
var len = $.trim(value).length;
if (param) ", "g"), param[i]);}}
return len >= param[0] && len <= param[1];
},message : 'please enter a value between and .'
}});
使用方式:
更新日誌:
2012-12-11
在夏悸的一篇博文中提到了另一種解決方案,大家也可以參考一下:
$.extend($.fn.validatebox.defaults.rules, characters.';
if(!rules.email.validator(value))
if(!rules.length.validator(value,param))
return value.length >= param[0];
},message : ''
}});
2013-01-06
自從1.3.2版本開始,validatebox自身已經支援多重校驗了,例如:
input class="easyui-validatebox" data-options="required:true,validtype:['email','length[0,20]']">
validatebox實現多重規則驗證
作為easyui的校驗外掛程式沒有實現多重校驗能力是一種缺憾。比如說,既要限制格式為email,同時要求最長長度為20,我們就要擴充套件一種規則,而對長度的要求很容易變化,如果變成要求30,我們又得擴張一種規則,所以對於多重驗證的需求很必要。實現思路較為簡單,擴充套件一種新規則 multiple,入...
Validatebox 驗證框的使用
1 首先了解什麼是validatebox 簡單的講,validatebox的功能是起校驗作用,例如若通過validatebox將型別設定為e mail,那麼validatebox會判斷你輸入的格式,輸入必須輸入e mail格式,否則會提醒報錯 2 舉個簡單的例子,也可以檢視easy ui的api,u...
CSS實現多重邊框
想到多重邊框,我們可能會通過多個元素來模擬實現,但是如何在乙個元素上實現多重邊框呢?如下圖 我們可以通過box shadow來實現。box shadow h shadow v shadow blur spread color inset outset 分別是 水平陰影位置 垂直陰影位置 模糊距離 擴...