jQuery插件EasyUI校驗規(guī)則 validatebox驗證框
Web前端數(shù)據(jù)校驗組件
Web項目中客戶端與服務端的交互離不開Form表單,F(xiàn)orm表單中最常用的元素莫過于input標簽,input標簽首先要用的肯定是text文本框啦!
input文本框允許用戶任意輸入,難免會會有用戶輸入一些不符合規(guī)定的數(shù)據(jù),此時,在提交之前對數(shù)據(jù)校驗是很有必要的,如果等到提交到服務端再校驗就會大大降低用戶體驗啦。
前端校驗有很多現(xiàn)成的組件,比較好用的有 EasyUI 的 validatebox 插件,提示界面做的相當友好,只是validatebox 默認提供的校驗規(guī)則比較有限,有時我們需要添加自己的校驗規(guī)則。
rules: {
email:{
validator: function(value){
return ...?$/i.test(value);
},
message: 'Please enter a valid email address.'
},
url: {
validator: function(value){
return ...?$/i.test(value);
},
message: 'Please enter a valid URL.'
},
length: {
validator: function(value, param){
var len = $.trim(value).length;
return len >= param[0] && len <= param[1]
},
message: 'Please enter a value between {0} and {1}.'
},
remote: {
validator: function(value, param){
var data = {};
data[param[1]] = value;
var response = $.ajax({
url:param[0],
dataType:'json',
data:data,
async:false,
cache:false,
type:'post'
}).responseText;
return response == 'true';
},
message: 'Please fix this field.'
}
},
自定義校驗規(guī)則
添加新的校驗規(guī)則時最好不要在EasyUI的源文件中進行,第一是避免因誤操作而導致污染了EasyUi源碼,更重要的是考慮到以后容易進行組件升級。所以最合理的辦法是單獨寫自己的擴展文件。
比如:我在原有規(guī)則的基礎上新增了以下三項校驗,單獨文件 easyui-extend-rcm.js:
(function($) {
/**
* jQuery EasyUI 1.4 --- 功能擴展
*
* Copyright (c) 2009-2015 RCM
*
* 新增 validatebox 校驗規(guī)則
*
*/
$.extend($.fn.validatebox.defaults.rules, {
idcard: {
validator: function(value, param) {
return idCardNoUtil.checkIdCardNo(value);
},
message: '請輸入正確的身份證號碼'
},
checkNum: {
validator: function(value, param) {
return /^([0-9]+)$/.test(value);
},
message: '請輸入整數(shù)'
},
checkFloat: {
validator: function(value, param) {
return /^[+|-]?([0-9]+\.[0-9]+)|[0-9]+$/.test(value);
},
message: '請輸入合法數(shù)字'
}
});
})(jQuery);
自定義規(guī)則使用方式
在中除了引入EasyUI的文件之外,還要引入自己的擴展文件,順序在EasyUI文件之后:
<pre name="code" class="javascript"><span style="font-size:18px;"><script src="#WEBROOT
()/static/jseasyui/jquery.easyui.min.js" type="text/javascript" ></script> <script src="#WEBROOT()/static/js/comm/easyui-extend-rcm.js" type="text/javascript"></script></span></pre> <pre class="brush:java;"></pre> 然后在Html中如下引用即可,一定要加Class 和 data-options兩個屬性:<br> <br> <p></p><pre class="brush:java;"><pre name="code" class="<a href=" http:="" m.fzitv.net="" kf="" qianduan="" css="" "="" target="_blank">html"><span style="font-size:18px;"><div id="dlg" class="easyui-dialog" style="width:300px; height:300px; vertical-align: middle;" closed="true" title="'添加中藥'" buttons="#dlg-buttons"> <div id="editForm" style="background:'';padding:20px;width:200px;height:200px; display:none;"> <form id="form" method="post"> <div style="padding-left:16px;padding-top:20px;" hidden="true"> <input type="text" name="dlg_drugId" id="dlg_drugId" hidden="true"> </div> <div style="padding-top:10px;padding-left:40px;"> <label for="dlg_name">藥物:</label> <input type="text" name="dlg_name" id="dlg_name" class="easyui-validatebox" readonly="readonly"> </div> <div style="padding-top:10px;padding-left:40px;"> <label for="dlg_price">單價:</label> <input type="text" name="dlg_price" id="dlg_price" <span="" style="color:#ff0000;">class="easyui-validatebox" data-options="required:true,validType:'checkFloat'" /> </div> <div style="padding-top:10px;padding-left:40px;"> <label for="dlg_purchase_price">進價:</label> <input type="text" name="dlg_purchase_price" id="dlg_purchase_price" <span="" style="color:#ff0000;">class="easyui-validatebox" data-options="validType:'checkFloat'" /> </div> <div style="padding-top:10px;padding-left:40px;"> <label for="dlg_stock">庫存:</label> <input type="text" name="dlg_stock" id="dlg_stock" <span="" style="color:#ff0000;">class="easyui-validatebox" data-options="validType:'checkNum'" /> </div> <div style="padding-top:10px;padding-left:40px;" align="center"> <input type="button" value="保存" onclick="saveTCMDrugPublicMapped()" class="bt_style"> </div> </form> </div> </div></span></pre><br> <br> <p></p> <pre class="brush:java;"></pre> <p></p> <h1>數(shù)據(jù)校驗顯示效果</h1> <p>效果如下圖所以:</p> <p><img src="20150130/20150130084015121.png" alt="" style="width: 378px; height: 213px;"><br> </p> </pre>
希望通過這篇文章的學習對jQuery EasyUI validatebox校驗規(guī)則更加了解。
相關文章
jquery radio 動態(tài)控制選中失效問題的解決方法
下面小編就為大家分享一篇jquery radio 動態(tài)控制選中失效問題的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-02-02
利用jquery給指定的table動態(tài)添加一行、刪除一行的方法
下面小編就為大家?guī)硪黄胘query給指定的table動態(tài)添加一行、刪除一行的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-10-10

