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 相关文章推荐
Google的跟踪代码 动态加载js代码方法应用
Nov 12 Javascript
jQuery学习笔记之基础中的基础
Jan 19 Javascript
jQuery实现在列表的首行添加数据
May 19 Javascript
jQuery实现下拉框选择图片功能实例
Aug 08 Javascript
基于JavaScript实现动态添加删除表格的行
Feb 01 Javascript
JavaScript实现的超简单计算器功能示例
Dec 23 Javascript
vue.js项目nginx部署教程
Apr 05 Javascript
JavaScript实现的简单加密解密操作示例
Jun 01 Javascript
在axios中使用params传参的时候传入数组的方法
Sep 25 Javascript
解决使用layui对select append元素无效或者未及时更新的问题
Sep 18 Javascript
基于Vue实现微前端的示例代码
Apr 24 Javascript
教你部署vue项目到docker
Apr 05 Vue.js
实例解析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 Smarty生成EXCEL文档的代码
2008/08/23 PHP
php eval函数用法 PHP中eval()函数小技巧
2012/10/31 PHP
php中的异常和错误浅析
2017/05/03 PHP
php实现生成code128条形码的方法详解
2017/07/19 PHP
jquery实现页面虚拟键盘特效
2015/08/08 Javascript
JQuery 的跨域方法推荐_可跨任何网站
2016/05/18 Javascript
js获取隐藏元素宽高的实现方法
2016/05/19 Javascript
jquery实现瀑布流效果 jquery下拉加载新数据
2016/12/12 Javascript
简单的渐变轮播插件
2017/01/12 Javascript
js实现简易聊天对话框
2017/08/17 Javascript
原生javascript单例模式的应用实例分析
2020/02/23 Javascript
vue从零实现一个消息通知组件的方法详解
2020/03/16 Javascript
jquery实现轮播图特效
2020/04/12 jQuery
[00:36]DOTA2上海特级锦标赛 LGD战队宣传片
2016/03/04 DOTA
Python排序算法实例代码
2017/08/10 Python
Python探索之Metaclass初步了解
2017/10/28 Python
基于Django与ajax之间的json传输方法
2018/05/29 Python
用python简单实现mysql数据同步到ElasticSearch的教程
2018/05/30 Python
python使用Matplotlib画条形图
2020/03/25 Python
详解python执行shell脚本创建用户及相关操作
2019/04/11 Python
python利用selenium进行浏览器爬虫
2019/04/25 Python
python点击鼠标获取坐标(Graphics)
2019/08/10 Python
Python 实现Numpy中找出array中最大值所对应的行和列
2019/11/26 Python
解决tensorflow模型压缩的问题_踩坑无数,总算搞定
2021/03/02 Python
美国独家设计师眼镜在线光学商店:Glasses Gallery
2017/12/28 全球购物
韩国江南富人区高端时尚百货商场:Galleria(格乐丽雅)
2018/03/27 全球购物
介绍一下linux的文件系统
2012/03/20 面试题
原料仓管员岗位职责
2014/04/12 职场文书
大学班级文化建设方案
2014/05/06 职场文书
生物学专业求职信
2014/07/23 职场文书
培训科主任岗位职责
2014/08/08 职场文书
我们的节日国庆活动方案
2014/08/19 职场文书
工程资料员岗位职责
2015/04/13 职场文书
建国大业观后感600字
2015/06/01 职场文书
亮剑观后感300字
2015/06/05 职场文书
2016暑期政治学习心得体会
2016/01/23 职场文书