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 setTimeout和setInterval 的区别
Dec 08 Javascript
Javascript的并行运算实现代码
Nov 19 Javascript
JavaScript简单实现鼠标拖动选择功能
Mar 06 Javascript
javascript浏览器窗口之间传递数据的方法
Jan 20 Javascript
JavaScript文档碎片操作实例分析
Dec 12 Javascript
使用jquery给指定的table动态添加一行、删除一行
Oct 13 Javascript
深入理解javascript函数参数与闭包
Dec 12 Javascript
Ionic3 UI组件之Gallery Modal详解
Jun 07 Javascript
vuejs使用递归组件实现树形目录的方法
Sep 30 Javascript
解决微信小程序云开发中获取数据库的内容为空的方法
May 15 Javascript
JS实现页面鼠标点击出现图片特效
Aug 19 Javascript
JavaScript中MutationObServer监听DOM元素详情
Nov 27 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实现的下载css文件中的图片的代码
2010/02/08 PHP
php中获取指定IP的物理地址的代码(正则表达式)
2011/06/23 PHP
php实现的RSS生成类实例
2015/04/23 PHP
PHP抽奖算法程序代码分享
2015/10/08 PHP
golang、python、php、c++、c、java、Nodejs性能对比
2017/03/12 NodeJs
解决Laravel5.2 Auth认证退出失效的问题
2019/10/14 PHP
ExtJs GridPanel简单的增删改实现代码
2010/08/26 Javascript
表单类各种类型(文本框)失去焦点效果jquery代码
2013/04/26 Javascript
js中settimeout方法加参数
2014/02/28 Javascript
基于jQuery实现仿搜狐辩论投票动画代码(附源码下载)
2016/02/18 Javascript
JavaScript学习笔记之ES6数组方法
2016/03/25 Javascript
jQuery  ready方法实现原理详解
2016/10/19 Javascript
jQuery中值得注意的trigger方法浅析
2016/12/12 Javascript
详解js数组的完全随机排列算法
2016/12/16 Javascript
教你一步步用jQyery实现轮播器
2016/12/18 Javascript
Bootstrap输入框组件使用详解
2017/06/09 Javascript
浅析从vue源码看观察者模式
2018/01/29 Javascript
详解Vue项目编译后部署在非网站根目录的解决方案
2018/04/26 Javascript
详解Vue3中对VDOM的改进
2020/04/23 Javascript
JavaScript使用prototype属性实现继承操作示例
2020/05/22 Javascript
viewer.js实现图片预览功能
2020/06/24 Javascript
解决Ant Design Modal内嵌Form表单initialValue值不动态更新问题
2020/10/29 Javascript
[00:57]辉夜杯战队访谈宣传片—VG
2015/12/25 DOTA
Python编程使用NLTK进行自然语言处理详解
2017/11/16 Python
Python使用configparser库读取配置文件
2020/02/22 Python
Corelle官方网站:购买康宁餐具
2016/11/02 全球购物
网上签名寄语活动留言
2014/01/18 职场文书
给小学生的新年寄语
2014/04/04 职场文书
十佳中学生事迹材料
2014/06/02 职场文书
装修活动策划方案
2014/08/27 职场文书
房屋过户委托书范本
2014/10/07 职场文书
旷课检讨书范文
2014/10/30 职场文书
公司市场部岗位职责
2015/04/15 职场文书
复兴之路观后感3000字
2015/06/02 职场文书
2016年中学法制宣传日活动总结
2016/04/01 职场文书
带你学习MySQL执行计划
2021/05/31 MySQL