jQuery插件EasyUI校验规则 validatebox验证框


Posted in Javascript onNovember 29, 2015

Web前端数据校验组件

Web项目中客户端与服务端的交互离不开Form表单,Form表单中最常用的元素莫过于input标签,input标签首先要用的肯定是text文本框啦!

input文本框允许用户任意输入,难免会会有用户输入一些不符合规定的数据,此时,在提交之前对数据校验是很有必要的,如果等到提交到服务端再校验就会大大降低用户体验啦。

前端校验有很多现成的组件,比较好用的有 EasyUI 的 validatebox 插件,提示界面做的相当友好,只是validatebox 默认提供的校验规则比较有限,有时我们需要添加自己的校验规则。

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.'
  }
 },

自定义校验规则

添加新的校验规则时最好不要在EasyUI的源文件中进行,第一是避免因误操作而导致污染了EasyUi源码,更重要的是考虑到以后容易进行组件升级。所以最合理的办法是单独写自己的扩展文件。

比如:我在原有规则的基础上新增了以下三项校验,单独文件 easyui-extend-rcm.js:

(function($) {
 /**
 * jQuery EasyUI 1.4 --- 功能扩展
 * 
 * Copyright (c) 2009-2015 RCM
 *
 * 新增 validatebox 校验规则
 *
 */
 $.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: '请输入整数'
 },
 checkFloat: {
  validator: function(value, param) {
  return /^[+|-]?([0-9]+\.[0-9]+)|[0-9]+$/.test(value);
  },
  message: '请输入合法数字'
 }
 });
})(jQuery);

自定义规则使用方式
在中除了引入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:="" 3water.com="" 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>数据校验显示效果</h1>
<p>效果如下图所以:</p>
<p><img src="20150130/20150130084015121.png" alt="" style="width: 378px; height: 213px;"><br>
</p>   </pre>

希望通过这篇文章的学习对jQuery EasyUI validatebox校验规则更加了解。

Javascript 相关文章推荐
xml 封装与解析(javascript和C#中)
Jul 26 Javascript
jQuery的实现原理的模拟代码 -4 重要的扩展函数 extend
Aug 03 Javascript
理解Javascript_11_constructor实现原理
Oct 18 Javascript
javascript中checkbox使用方法实例演示
Nov 19 Javascript
jQuery中ajax错误调试分析
Dec 01 Javascript
JS实现京东首页之页面顶部、Logo和搜索框功能
Jan 12 Javascript
Bootstrap fileinput文件上传组件使用详解
Jun 06 Javascript
javascript 中事件冒泡和事件捕获机制的详解
Sep 01 Javascript
JS数组去重常用方法实例小结【4种方法】
May 28 Javascript
详解js动态获取浏览器或页面等容器的宽高
Mar 13 Javascript
微信小程序如何修改本地缓存key中单个数据的详解
Apr 26 Javascript
element-ui 实现响应式导航栏的示例代码
May 08 Javascript
实例解析jQuery插件EasyUI最常用的表单验证规则
Nov 29 #Javascript
整理Javascript流程控制语句学习笔记
Nov 29 #Javascript
基于javascript代码实现通过点击图片显示原图片
Nov 29 #Javascript
整理Javascript数组学习笔记
Nov 29 #Javascript
Bootstrap每天必学之缩略图与警示窗
Nov 29 #Javascript
分享我的jquery实现下拉菜单心的
Nov 29 #Javascript
jQuery随手笔记之常用的jQuery操作DOM事件
Nov 29 #Javascript
You might like
便携利器 — TECSUN PL-365简评
2021/03/02 无线电
php实现cc攻击防御和防止快速刷新页面示例
2014/02/13 PHP
PHP版本升级到7.x后wordpress的一些修改及wordpress技巧
2015/12/25 PHP
CI框架扩展系统核心类的方法分析
2016/05/23 PHP
jquery 学习之二 属性 文本与值(text,val)
2010/11/25 Javascript
子窗体与父窗体传值示例js代码
2013/08/01 Javascript
JavaScript中使用ActiveXObject操作本地文件夹的方法
2014/03/28 Javascript
swtich/if...else的替代语句
2015/08/16 Javascript
深入浅析JavaScript中对事件的三种监听方式
2015/09/29 Javascript
window.onerror()的用法与实例分析
2016/01/27 Javascript
Jquery基础之事件操作详解
2016/06/14 Javascript
vue中动态设置meta标签和title标签的方法
2018/07/11 Javascript
node.js之基础加密算法模块crypto详解
2018/09/11 Javascript
在Layui中操作数据表格,给指定单元格添加事件示例
2019/10/26 Javascript
vue动态设置页面title的方法实例
2020/08/23 Javascript
vue组件中实现嵌套子组件案例
2020/08/31 Javascript
记一次vue跨域的解决
2020/10/21 Javascript
PHP 502bad gateway原因及解决方案
2020/11/13 Javascript
[00:15]TI9地铁玩家打卡
2019/08/11 DOTA
python文件的md5加密方法
2016/04/06 Python
python web基础之加载静态文件实例
2018/03/20 Python
Windows上使用Python增加或删除权限的方法
2018/04/24 Python
使用python存储网页上的图片实例
2018/05/22 Python
Python脚本修改阿里云的访问控制列表的方法
2019/03/08 Python
jupyter notebook 恢复误删单元格或者历史代码的实现
2020/04/17 Python
Python实现中英文全文搜索的示例
2020/12/04 Python
使用canvas实现黑客帝国数字雨效果
2020/01/02 HTML / CSS
澳大利亚优惠网站:Deals.com.au
2019/07/02 全球购物
大一学生假期实习的自我评价
2013/10/12 职场文书
小学教师国培感言
2014/02/08 职场文书
元旦晚会感言
2014/03/12 职场文书
新年爱情寄语
2014/04/08 职场文书
四风对照检查材料范文
2014/09/27 职场文书
党员民主评议个人总结
2014/10/20 职场文书
《梅花魂》教学反思
2016/02/18 职场文书
Oracle以逗号分隔的字符串拆分为多行数据实例详解
2021/07/16 Oracle