easyui关于validatebox实现多重规则验证的实践
参考资料
http://blog.csdn.net/jumtre/article/details/38510975
http://blog.csdn.net/lybwwp/article/details/9028741/
方法一:
自从1.3.2版本开始,validatebox自身已经支持多重校验了,例如:
- <input class="easyui-validatebox" data-options="required:true,validType:['email','length[0,20]']">
方法二:(不太好用,试了半天还是不显示第二个验证的消息)
对于1.5版本的easyui.min,注释掉以下代码:

- $.extend($.fn.validatebox.defaults.rules, {
- multiple : {
- validator : function(value, vtypes) {
- var returnFlag = true;
- var opts = $.fn.validatebox.defaults;
- for (var i = ; i < vtypes.length; i++) {
- var methodinfo = /([a-zA-Z_]+)(.*)/.exec(vtypes[i]);
- var rule = opts.rules[methodinfo[]];
- if (value && rule) {
- var parame = eval(methodinfo[]);
- if (!rule["validator"](value, parame)) {
- returnFlag = false;
- this.message = rule.message;
- break;
- }
- }
- }
- return returnFlag;
- }
- },
- length : {
- validator : function(value, param) {
- this.message = 'Please enter a value between {0} and {1}.';
- var len = $.trim(value).length;
- if (param) {
- for (var i = ; i < param.length; i++) {
- this.message = this.message.replace(new RegExp(
- "\\{" + i + "\\}", "g"), param[i]);
- }
- }
- return len >= param[] && len <= param[];
- },
- message : 'Please enter a value between {0} and {1}.'
- }
- });
调用方法
- <input class="easyui-validatebox" data-options="required:true,validType:'multiple[\'email\',\'length[0,20]\']'">
方法三:(可以实现两种验证的消息)
- $.extend($.fn.validatebox.defaults.rules, {
- minLength : {
- validator : function (value, param) {
- var rules = $.fn.validatebox.defaults.rules;
- rules.minLength.message = 'Please enter at least {0} characters.';
- if(!rules.email.validator(value)){
- rules.minLength.message = rules.email.message;
- return false;
- }
- if(!rules.length.validator(value,param)){
- rules.minLength.message = rules.length.message;
- return false;
- }
- return value.length >= param[];
- },
- message : ''
- }
- });
根据方法三的试验:
- $.extend($.fn.validatebox.defaults.rules, {
- //再次输入密码效验(与上一次一样;密码介于6-16位)
- checkpwd: {
- validator: function (value, param) {
- var rules = $.fn.validatebox.defaults.rules;
- rules.checkpwd.message = 'Please enter at least {0} characters.';
- if (!rules.passequals.validator(value,param)) {
- rules.checkpwd.message = rules.passequals.message;
- return false;
- }
- if (!rules.minlength.validator(value)) {
- rules.checkpwd.message = rules.minlength.message;
- return false;
- }
- return value.length >= param[];
- },
- message: ''
- },
- passequals: {
- validator: function (value, param) {
- return value == $(param[]).val();
- },
- message: '两次密码不一致.'
- },
- minlength: {
- validator: function (value) {
- var len = $.trim(value).length;
- return len >= && len <= ;
- },
- message: "输入内容长度必须介于6和16之间."
- }
- });
调用:(注意pwd两边不能写引号)
- <input id="pwd" name="pwd" type="password" class="easyui-validatebox" />
- <input id="rpwd" name="rpwd" type="password" class="easyui-validatebox" data-options="validType:'checkpwd[pwd]'" />
附录: 可以参考的验证规则:
- idcard: {// 验证身份证
- validator: function (value) {
- return /^\d{}(\d{}[A-Za-z0-])?$/i.test(value);
- },
- message: '身份证号码格式不正确'
- },
- minLength: {
- validator: function (value, param) {
- return value.length >= param[];
- },
- message: '请输入至少(2)个字符.'
- },
- length: { validator: function (value, param) {
- var len = $.trim(value).length;
- return len >= param[] && len <= param[];
- },
- message: "输入内容长度必须介于{0}和{1}之间."
- },
- phone: {// 验证电话号码
- validator: function (value) {
- return /^((\d{,})|(\d{}\-))?(\d{,}|\d{,}-)?[-]\d{,}(\-\d{,})?$/i.test(value);
- },
- message: '格式不正确,请使用下面格式:020-88888888'
- },
- mobile: {// 验证手机号码
- validator: function (value) {
- return /^(||)\d{}$/i.test(value);
- },
- message: '手机号码格式不正确'
- },
- intOrFloat: {// 验证整数或小数
- validator: function (value) {
- return /^\d+(\.\d+)?$/i.test(value);
- },
- message: '请输入数字,并确保格式正确'
- },
- currency: {// 验证货币
- validator: function (value) {
- return /^\d+(\.\d+)?$/i.test(value);
- },
- message: '货币格式不正确'
- },
- qq: {// 验证QQ,从10000开始
- validator: function (value) {
- return /^[-]\d{,}$/i.test(value);
- },
- message: 'QQ号码格式不正确'
- },
- integer: {// 验证整数 可正负数
- validator: function (value) {
- //return /^[+]?[1-9]+\d*$/i.test(value);
- return /^([+]?[-])|([-]?[-])+\d*$/i.test(value);
- },
- message: '请输入整数'
- },
- age: {// 验证年龄
- validator: function (value) {
- return /^(?:[-][-]?|[][-]|)$/i.test(value);
- },
- message: '年龄必须是0到120之间的整数'
- },
- chinese: {// 验证中文
- validator: function (value) {
- return /^[\Α-\¥]+$/i.test(value);
- },
- message: '请输入中文'
- },
- english: {// 验证英语
- validator: function (value) {
- return /^[A-Za-z]+$/i.test(value);
- },
- message: '请输入英文'
- },
- unnormal: {// 验证是否包含空格和非法字符
- validator: function (value) {
- return /.+/i.test(value);
- },
- message: '输入值不能为空和包含其他非法字符'
- },
- username: {// 验证用户名
- validator: function (value) {
- return /^[a-zA-Z][a-zA-Z0-9_]{,}$/i.test(value);
- },
- message: '用户名不合法(字母开头,允许6-16字节,允许字母数字下划线)'
- },
- faxno: {// 验证传真
- validator: function (value) {
- // return /^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/i.test(value);
- return /^((\d{,})|(\d{}\-))?(\d{,}|\d{,}-)?[-]\d{,}(\-\d{,})?$/i.test(value);
- },
- message: '传真号码不正确'
- },
- zip: {// 验证邮政编码
- validator: function (value) {
- return /^[-]\d{}$/i.test(value);
- },
- message: '邮政编码格式不正确'
- },
- ip: {// 验证IP地址
- validator: function (value) {
- return /d+.d+.d+.d+/i.test(value);
- },
- message: 'IP地址格式不正确'
- },
- name: {// 验证姓名,可以是中文或英文
- validator: function (value) {
- return /^[\Α-\¥]+$/i.test(value) | /^\w+[\w\s]+\w+$/i.test(value);
- },
- message: '请输入姓名'
- },
- date: {// 验证姓名,可以是中文或英文
- validator: function (value) {
- //格式yyyy-MM-dd或yyyy-M-d
- return /^(?:(?!)[-]{}([-]?)(?:(?:?[-]|[-])\(?:?[-]|[-]|[-])|(?:?[-]|[-])\(?:|)|(?:?[]|[])\(?:))|(?:[-]{}(?:[]|[][]|[][])|(?:[]|[][]|[][]))([-]?)?\(?:))$/i.test(value);
- },
- message: '清输入合适的日期格式'
- },
- msn: {
- validator: function (value) {
- return /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(value);
- },
- message: '请输入有效的msn账号(例:abc@hotnail(msn/live).com)'
- },
- same: {
- validator: function (value, param) {
- if ($("#" + param[]).val() != "" && value != "") {
- return $("#" + param[]).val() == value;
- } else {
- return true;
- }
- },
- message: '两次输入的密码不一致!'
- }
easyui关于validatebox实现多重规则验证的实践的更多相关文章
- validatebox实现多重规则验证
作为Easyui的校验插件没有实现多重校验能力是一种缺憾.比如说,既要限制格式为email,同时要求最长长度为20,我们就要扩展一种规则,而对长度的要求很容易变化,如果变成要求30,我们又得扩张一种规 ...
- easyui的validatebox重写自定义验证规则的几个实例
validatebox已经实现的几个规则: 验证规则是根据使用需求和验证类型属性来定义的,这些规则已经实现(easyui API): email:匹配E-Mail的正则表达式规则. url:匹配URL ...
- 第二百一十一节,jQuery EasyUI,ValidateBox(验证框)组件
jQuery EasyUI,ValidateBox(验证框)组件 学习要点: 1.加载方式 2.属性列表 3.方法列表 4.自定义验证 本节课重点了解 EasyUI 中 ValidateBox(验证框 ...
- Jquery easyui的validatebox控件和正则表达式
http://blog.csdn.net/dandanzmc/article/details/36421465 仔细观察jquery.validatebox.js文件,会发现它的验证其实还是采用的正则 ...
- JQuery EasyUI 动态改变表单项的验证守则
//JQuery EasyUI 动态改变表单项的验证规则 $(document).ready(function(){ $('#FILE_QUALITY').combobox({ onChange:fu ...
- 仿照easy-ui并改进的表单验证
概述 easy-ui有自身的一套表单验证,扩展方便,但默认下也存在一些弱点,比如多规则验证.后台验证.远程异步验证等,这些功能要解决起来是比较吃力的.我仿照它的样式,写了一套前端表单验证的validB ...
- ASP.NET没有魔法——ASP.NET Identity 的“多重”身份验证
ASP.NET Identity除了提供基于Cookie的身份验证外,还提供了一些高级功能,如多次输入错误账户信息后会锁定用户禁止登录.集成第三方验证.账户的二次验证等,并且ASP.NET MVC的默 ...
- 证明你是你——快速开启Windows Azure多重身份验证
中国版Windows Azure的多重身份验证(Multi-Factor Authentication)功能已经开放.这个功能说白了就是要“证明你是你”.目前可以支持以下几种验证方式: 手机,短信验证 ...
- 宣布正式发布 Windows Azure 多重身份验证
身份和访问管理是安全之锚,是企业 IT 部门的首要任务.它是随时随地向员工.合作伙伴和客户提供访问的关键所在.今天,我们非常高兴地宣布正式发布 Windows Azure 多重身份验证,从而为 IT ...
随机推荐
- cache-coherent nonuniform memory access
COMPUTER OR GANIZATION AND ARCHITECTURE DESIGNING FOR PERFORMANCE NINTH EDITION
- python基础3
一.文件操作:打开文件:f = open("db", "r") #只读f = open("db", "w") #只写,注 ...
- Java 三章错题
1.每个类都使用Object作为超类.所以对象(包括数组)都实现这个类的方法. 2.在不明确给出超类的情况下,java会自动把object作为要定义的超类. 可以使用类型为Object的变量指向任意类 ...
- 分析器错误消息: 未能加载类型“Automation.Web.MvcApplication”。
常见原因1 : 可能是自己手动修改了项目 ==>属性==>生成的输出路径 ,导致版本不兼容 常见员因2 : Global的 命名空间 与 项目的命名空间 不一致 常见原因3 : 查看 ...
- 【转载】Mysql 查看连接数,状态
转载地址:http://blog.csdn.net/starnight_cbj/article/details/4492555 命令: show processlist; 如果是root帐号,你能看到 ...
- ubuntu14.04下安装python3.4.2
1. python安装包的下载地址:https://www.python.org/downloads/ 我的python安装包下载地址:https://www.python.org/ftp/pytho ...
- IntelliMVCCode智能MVC架构的代码助手使用方法
智能代码生成工具,快速帮助开发者提升开发速度,通过工具自动生成MVC架构的大量源代码,节省更多的开发时间. 工具使用的框架:.net4.0,通过工具连接到数据库自动提取数据表或视图中的结构,生成对应的 ...
- deep learning...深入学习深度学习 --工具篇
Caffe( http://caffe.berkeleyvision.org/ )是一个清晰而高效的深度学习框架,其作者是博士毕业于UC Berkeley的贾扬清( http://daggerfs.c ...
- springmvc中的controller是单例的
今天发现spring3中的controller默认是单例的,若是某个controller中有一个私有的变量a,所有请求到同一个controller时,使用的a变量是共用的,即若是某个请求中修改了这个变 ...
- git 学习笔记
1.创建git仓库 git init 2.添加文件 git add readme.txt 3.修改文件 git add readme.txt 4.提交修改 git commit -m "提交 ...