jQuery easyui的validatebox校验规则扩展及easyui校验框validatebox用法


Posted in Javascript onJanuary 18, 2016

先给大家分享数据校验显示效果

jQuery easyui的validatebox校验规则扩展及easyui校验框validatebox用法

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);

自定义规则使用方式

在<head>中除了引入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>

然后在Html中如下引用即可,一定要加Class 和 data-options两个属性:

<pre name="code" class="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'"</span> /> 
</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'"</span> /> 
</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'"</span> /> 
</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>

详解jQuery easyui 校验框validatebox用法

JQuery EasyUI 验证框(ValidateBox)在表单的验证方面给我们提供了很方便的方法

<input id="vv" required="true" validType="email">

属性

属性名 类型 描述 默认值
required 布尔 定义文本域是否为必填项 false
validType 字符串 定义字段的验证类型比如email, url, etc. null
missingMessage 字符串 当文本框为空时提示的文本信息 This field is required
invalidMessage 字符串 当文本框内容不合法时提示的文本信息 null

方法

方法名 参数 描述
destroy none 删除并且销毁组件
validate none 做验证以确定文本框的内容是否是有效的
isValid none 调用验证方法并返回验证结果,true或者false

注意这里除了required属性外,若validType属性失败.并不会阻止表单提交..所以我们这里如果要阻止表单提交,就又要利用jquery ui提交的表单方法

具体写法是

$(":submit").click(function(){
if(!$("#form").form('validate')){
return false;
}
})
#form是<form>表单的ID
Javascript 相关文章推荐
JavaScript对象链式操作代码(jquery)
Jul 04 Javascript
JavaScript 语言基础知识点总结(思维导图)
Nov 10 Javascript
JavaScript函数的4种调用方法详解
Apr 22 Javascript
一个判断抢购时间是否到达的简单的js函数
Jun 23 Javascript
百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换
Feb 19 Javascript
Vue数据驱动模拟实现5
Jan 13 Javascript
浅谈$_FILES数组为空的原因
Feb 16 Javascript
VUE长按事件需求详解
Oct 18 Javascript
vue组件watch属性实例讲解
Nov 07 Javascript
Vuex中mutations与actions的区别详解
Mar 01 Javascript
node.js之基础加密算法模块crypto详解
Sep 11 Javascript
解决小程序无法触发SESSION问题
Feb 03 Javascript
jquery.validate 自定义验证方法及validate相关参数
Jan 18 #Javascript
实例详解jQuery表单验证插件validate
Jan 18 #Javascript
基于JavaScript实现鼠标悬浮弹出跟随鼠标移动的带箭头的信息层
Jan 18 #Javascript
jQuery插件Validate实现自定义校验结果样式
Jan 18 #Javascript
jQuery插件实现带圆点的焦点图片轮播切换
Jan 18 #Javascript
轻松实现js图片预览功能
Jan 18 #Javascript
jQuery插件Validate实现自定义表单验证
Jan 18 #Javascript
You might like
PHP4在Windows2000下的安装
2006/10/09 PHP
php木马webshell扫描器代码
2012/01/25 PHP
php通过array_unshift函数添加多个变量到数组前端的方法
2015/03/18 PHP
PHP-FPM实现性能优化
2016/03/31 PHP
php使用yield对性能提升的测试实例分析
2019/09/19 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
JQuery 选择器、过滤器介绍
2011/02/14 Javascript
jQuery实现的输入框选择时间插件用法实例
2015/02/28 Javascript
jQuery网页版打砖块小游戏源码分享
2015/08/20 Javascript
JS实现密码框根据焦点的获取与失去控制文字的消失与显示效果
2015/11/26 Javascript
基于 Node.js 实现前后端分离
2016/04/23 Javascript
如何在AngularJs中调用第三方插件库
2017/05/21 Javascript
nodejs创建简易web服务器与文件读写的实例
2017/09/07 NodeJs
vue elementUI table 自定义表头和行合并的实例代码
2019/05/22 Javascript
JavaScript HTML DOM元素 节点操作汇总
2019/07/29 Javascript
微信小程序背景音乐开发详解
2019/12/12 Javascript
javascript单张多张图无缝滚动实例代码
2020/05/10 Javascript
解决antd 表单设置默认值initialValue后验证失效的问题
2020/11/02 Javascript
[38:32]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第二局
2016/02/26 DOTA
Python实现登录人人网并抓取新鲜事的方法
2015/05/11 Python
Python标准库sched模块使用指南
2017/07/06 Python
Python列表推导式、字典推导式与集合推导式用法实例分析
2018/02/07 Python
Python json模块dumps、loads操作示例
2018/09/06 Python
我喜欢你 抖音表白程序python版
2019/04/07 Python
简单了解Python生成器是什么
2019/07/02 Python
在linux下实现 python 监控usb设备信号
2019/07/03 Python
详解Python遍历列表时删除元素的正确做法
2021/01/07 Python
台湾三立电视电商平台:电电购
2019/09/09 全球购物
如何提高JDBC的性能
2013/04/30 面试题
学院领导推荐信
2013/10/30 职场文书
简历中个人求职的自我评价模板
2013/11/29 职场文书
《再别康桥》教学反思
2014/02/12 职场文书
领导干部廉政自律承诺书
2014/05/26 职场文书
教师信息技术学习心得体会
2016/01/21 职场文书
golang DNS服务器的简单实现操作
2021/04/30 Golang
Python连续赋值需要注意的一些问题
2021/06/03 Python