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 相关文章推荐
JavaScript中的关键字&quot;VAR&quot;使用详解 分享
Jul 31 Javascript
JQuery插件jcarousellite的参数中文说明
May 11 Javascript
jQuery  ready方法实现原理详解
Oct 19 Javascript
JS实现简单的二元方程计算器功能示例
Jan 03 Javascript
Bootstrap页面缩小变形的快速解决办法
Feb 03 Javascript
jQuery插件MovingBoxes实现左右滑动中间放大图片效果
Feb 28 Javascript
layui的table中显示图片方法
Aug 17 Javascript
vue弹窗插件实战代码
Sep 08 Javascript
JavaScript常见事件处理程序实例总结
Jan 05 Javascript
ajax跨域访问遇到的问题及解决方案
May 23 Javascript
json解析大全 双引号、键值对不在一起的情况
Dec 06 Javascript
解决三元运算符 报错“SyntaxError: can''t assign to conditional expression”
Feb 12 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
PHP+SQL 注入攻击的技术实现以及预防办法
2010/12/29 PHP
PHP设计模式之结构模式的深入解析
2013/06/13 PHP
javascript应用:Iframe自适应其加载的内容高度
2007/04/10 Javascript
javascript复制粘贴与clipboardData的使用
2014/10/16 Javascript
可以浮动某个物体的jquery控件用法实例
2015/07/24 Javascript
jQuery插件formValidator实现表单验证
2016/05/23 Javascript
jQuery电话号码验证实例
2017/01/05 Javascript
js数字滑动时钟的简单实现(示例讲解)
2017/08/14 Javascript
Angular使用Md5加密的解决方法
2017/09/16 Javascript
Vue父子模版传值及组件传值的三种方法
2017/11/27 Javascript
Nodejs中crypto模块的安全知识讲解
2018/01/03 NodeJs
JavaScript自动生成 年月范围 选择功能完整示例【基于jQuery插件】
2019/09/03 jQuery
javascript Canvas动态粒子连线
2020/01/01 Javascript
[40:19]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第二场 12.18
2020/12/19 DOTA
对于Python的Django框架使用的一些实用建议
2015/04/03 Python
python实现用户管理系统
2018/01/10 Python
利用Python写一个爬妹子的爬虫
2018/06/08 Python
详解Python列表赋值复制深拷贝及5种浅拷贝
2019/05/15 Python
利用Tensorboard绘制网络识别准确率和loss曲线实例
2020/02/15 Python
Python如何实现小程序 无限求和平均
2020/02/18 Python
django正续或者倒序查库实例
2020/05/19 Python
Python中常用的os操作汇总
2020/11/05 Python
TensorFlow2.0使用keras训练模型的实现
2021/02/20 Python
Ibood荷兰:互联网每日最佳在线优惠
2019/02/28 全球购物
送给程序员的20个Java集合面试问题
2014/08/06 面试题
学前教育毕业生自荐信范文
2013/12/24 职场文书
十佳大学生事迹材料
2014/01/29 职场文书
人力资源主管的岗位职责
2014/03/15 职场文书
地理科学专业自荐信
2014/09/01 职场文书
小学生推普周国旗下讲话稿
2014/09/21 职场文书
专题组织生活会发言材料
2014/10/17 职场文书
大连星海广场导游词
2015/02/10 职场文书
2015企业年终工作总结范文
2015/05/27 职场文书
趣味运动会广播稿
2015/08/19 职场文书
创业的9条正确思考方式
2019/08/26 职场文书
利用python做数据拟合详情
2021/11/17 Python