atitit.表单验证 的dsl 本质跟 easyui ligerui比较

atitit.表单验证的dsl 本质跟 easyui ligerui比较 

 

1. DSL 声明验证 1

2. 自定义规则 1

3. 正则表达式验证,可以扩展实现 2

4. 犯错误消息提示,generic canBeEmpty is good 3

5. Prevent the form to submit when invalid 3

6. 为空则不验证,不为空则验证,的实现 5

7. 参考 6

 

 

1. DSL 声明验证

 <input class="easyui-validatebox" type="text" name="email" required="true" validType="email"></input>

We add a class named easyui-validatebox to input markup so the input markup will be applied the validation according the validType attribute.

 

 

Liger

<input ligeruiid="txtName" style="width: 174px;" class="l-text-field" name="txtName" id="txtName" ltype="text" validate="{required:true,minlength:3,maxlength:10}" type="text">

 

验证规则

验证规则使用required和validType属性来定义, 以下列出的是插件内置的验证规则。

1 email: 正则匹配电子邮件。

2 url: 正则匹配url。

3 length[0,100]: 验证长度范围。

4 remote['http://.../action.do','paramName']: 发送ajax请求来验证,验证有效时返回true。

 

 

作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

 

2. 自定义规则

要自定义规则,重载$.fn.validatebox.defaults。你所定义的验证规则必须定义一个验证函数和验证无效时的提示信息。 例如,定义一个验证最小长度的规则:

5 $.extend($.fn.validatebox.defaults.rules, {   

6     minLength: {   

7         validator: function(value, param){   

8             return value.length >= param[0];   

9         },   

10         message: 'Please enter at least {0} characters.'  

11     }   

12 });  

现在你可以使用最小长度验证规则来定义一个至少要输入5个字符的输入框。

13 <input class="easyui-validatebox" validType="minLength[5]">  

14 此处的validType=“minLength[5]”,设置可能无效,可设置为validType="length[3,8]",填入的值在3~8个字符之间

属性

 

3. 正则表达式验证,可以扩展实现

 

拓展2

$.extend($.fn.validatebox.defaults.rules,{

   idcard : {// 验证身份证 

       validator : function(value) { 

           return/^\d{15}(\d{2}[A-Za-z0-9])?$/i.test(value); 

       }, 

       message : '身份证号码格式不正确' 

   },

 

4. 犯错误消息提示,generic canBeEmpty is good

 

属性

名称

类型

描述

默认值

required(必填)

boolean(布尔型)

定义表单域必须填写。

false

validType(验证类型)

string(字符串)

定义表单域的验证类型,比如:email, url等。

null

missingMessage(未填提示)

string(字符串)

当表单域未填写时出现的提示信息。

This field is required.

invalidMessage(无效提示)

string(字符串)

当表单域的内容被验证为无效时出现的提示。

null

 

 

 

Liger::::deft is this field is not be empty ,,jsig haon normall....generic...

5. Prevent the form to submit when invalid

When users click the submit button of form, we should prevent the form to submit if the form is invalid.

15 $('#ff').form({

16 url:'form3_proc.php',

17 onSubmit:function(){

18 return $(this).form('validate');

19 },

20 success:function(data){

21 $.messager.alert('Info', data, 'info');

22 }

23 });

If the form is invalid, a tooltip message will show.

--------liger

 

        $(function ()

        {

            $.metadata.setType("attr", "validate");

            var v = $("form").validate({

                debug: true,

                errorPlacement: function (lable, element)

                {

                    if (element.hasClass("l-textarea"))

                    {

                        element.ligerTip({ content: lable.html(), target: element[0] });

                    }

                    else if (element.hasClass("l-text-field"))

                    {

                        element.parent().ligerTip({ content: lable.html(), target: element[0] });

                    }

                    else

                    {

                        lable.appendTo(element.parents("td:first").next("td"));

                    }

                },

                success: function (lable)

                {

                    lable.ligerHideTip();

                    lable.remove();

                },

                submitHandler: function ()

                {

                    $("form .l-text,.l-textarea").ligerHideTip();

                    alert("Submitted!")

                }

            });

            $("form").ligerForm();

            $(".l-button-test").click(function ()

            {

                alert(v.element($("#txtName")));

            });

        }); 

 

 

6. 为空则不验证,不为空则验证,的实现

现在是不适合的,还要自己扩展规则。 
但email,url,电话这种很多时候需求都是允许为空的。

重载一下验证规则:

Js代码  

24 $.extend($.fn.validatebox.defaults.rules, {  

25     email:{  

26         validator:function(value,param){  

27             if (value){  

28                 return /^([\w]+)(.[\w]+)*@([\w-]+\.){1,5}([A-Za-z]){2,4}$/.test(value);  

29             } else {  

30                 return true;  

31             }  

32         },  

33         message:'Please enter a valid email address.'  

34     },  

35     url:{  

36         validator:function(value,param){  

37             if (value){  

38                 return /(((https?)|(ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i.test(value);  

39             } else {  

40                 return true;  

41             }  

42         },  

43         message:'Please enter a valid URL.'  

44     }  

45 });  

  

 

 

 

7. 参考

扩展easyui 的表单验证 - 疯狂秀才 - 博客园.htm

easyui 正则表达式验证扩展(包括一些经常用到的正则验证式)_东avaj东_新浪博客.htm

我要啦免费统计

转载于:https://www.cnblogs.com/attilax/p/5963920.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/260202.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

企业级应用框架(五)IOC容器在框架中的应用

前言 在上一篇我大致的介绍了这个系列所涉及到的知识点&#xff0c;在本篇我打算把IOC这一块单独提取出来讲&#xff0c;因为IOC容器在解除框架层与层之间的耦合有着不可磨灭的作用。当然在本系列前面的三篇中我也提供了一种基于反射的解耦方式&#xff0c;但是始终不是很优雅&…

后端开发需要学什么_都2020年了,还在纠结学什么语言?| 后端篇

几个礼拜前&#xff0c;一个学弟问我&#xff1a;“Ray&#xff0c;我打算之后要找工作了&#xff0c;不过现在自己没有特别深入的语言&#xff0c;最近想找一门好好学一下&#xff0c;你觉得学什么语言好呀&#xff1f;”我表示&#xff1a;“这个要看你求职方向、个人喜好、市…

10个非常有用的CSS hack和技术

转自&#xff1a;http://www.qianduan.net/10-useful-css-hacks-and-technique.html 1 – 跨浏览器的inline-block <style>li {width: 200px;min-height: 250px;border: 1px solid #000;display: -moz-inline-stack;display: inline-block;margin: 5px;zoom: 1;*display:…

Java的递归算法

递归算法设计的基本思想是&#xff1a;对于一个复杂的问题&#xff0c;把原问题分解为若干个相对简单类同的子问题&#xff0c;继续下去直到子问题简单到可以直接求解&#xff0c;也就是说到了递推的出口&#xff0c;这样原问题就有递推得解。 关键要抓住的是&#xff1a; &…

发现Java程序中的Bug

昨天在CSDN上阅读 "Java中十个常见的违规编码"这篇文章时&#xff0c;无意中找到了3个 "发现Java程序中的Bug"工具。 文章地址&#xff1a;http://www.csdn.net/article/2012-09-11/2809829-common-code-violations-in-java其中&#xff0c; FindBugs™ - …

shiro前后端分离_为什么要前后端分离?前后端分离的优点是什么?

随着互联网的高速发展以及IT开发技术的升级&#xff0c;前后端分离已成为互联网项目开发的业界标准使用方式。在实际工作中&#xff0c;前后端的接口联调对接工作量占HTML5大前端人员日常工作的30%-50%&#xff0c;甚至会更高。接下来千锋小编分享的广州HTML5大前端学习就给大家…

hdu--1075--字典树||map

做这题的时候 我完全没想到 字典树 就直接用map来做了 - 我是有 多不 敏感啊~~ 然后去 discuss 一看 很多都是说 字典树的问题.... 字典树 给我感觉 它的各个操作的意思都很清晰明了 直接手写 不那么容易啊。。 晚些 时候 试下来写------用map写是真心方便 只要注意下那么\n的吸…

php的类装载的步骤,设计PHP自动类装载功能

在使用面向对象方法做PHP开发时&#xff0c;可能会经常使用到各个路径中的类文件&#xff0c;这就需要大量的 include 或 require&#xff0c;而 PHP 提供了一个比较快捷的方式&#xff0c;就是利用函数 __autoload 可以编程实现动态的类装载功能&#xff0c;这样就不需要手动的…

网站首页幻灯片

Js页面: View Code /** * 大眼睛广告轮播 */ var indexEye {autoTime: 0,init: function () {var eyeObj $("#dyj_pics a:eq(0) img:eq(0)");eyeObj.attr("src", eyeObj.attr("data-imgSrc"));eyeObj.load(function () {indexEye.autoTime se…

Qt之QAbstractItemView视图项拖拽(二)

一、需求说明 上一篇文章Qt之QAbstractItemView视图项拖拽(一)讲述了实现QAbstractItemView视图项拖拽的一种方式&#xff0c;是基于QDrag实现的&#xff0c;这个类是qt自己封装好了的&#xff0c;所以可定制性也就没有了那么强&#xff0c;最明显的是&#xff0c;这个类在执…

电脑控制苹果手机_必备神器,电脑控制手机

序一款电脑端的神器&#xff0c;它可以任意的操纵你的手机。****QtScrcpy可以通过USB(或通过TCP/IP)连接Android设备&#xff0c;并进行显示和控制。不需要root权限。单个应用程序最多支持16个安卓设备同时连接。同时支持GNU/Linux&#xff0c;Windows和MacOS三大主流桌面平台。…

生活大爆炸版石头剪刀布

题目描述 Description石头剪刀布是常见的猜拳游戏&#xff1a;石头胜剪刀&#xff0c;剪刀胜布&#xff0c;布胜石头。如果两个人出拳一样&#xff0c;则不分胜负。在《生活大爆炸》第二季第8集中出现了一种石头剪刀布的升级版游戏。升级版游戏在传统的石头剪刀布游戏的基础上&…

jquery事件 on(),live(),delegate(),blind()

jQuery推出on()的目的有2个&#xff0c;一是为了统一接口&#xff0c;二是为了提高性能&#xff0c; 所以从现在开始用on()替换bind(), live(), delegate吧。 尤其是不要再用live()了&#xff0c;因为它已经处于不推荐使用列表了[1.7已经被删除]。 如果只绑定一次事件&#xff…

用python庆祝生日_生日到底该过阴历还是阳历好呢?不是迷信,都怪我们大意!...

过生日到底该过阴历还是阳历&#xff1f;答案说出来你可能都不信在我们国家&#xff0c;过生日有两种不同的方式&#xff0c;因为有两种不同的日子的计算方式&#xff0c;分为阴历和阳历。一般来说&#xff0c;在农村和一些比较落后的地方&#xff0c;人们习惯于用阴历来计算生…

WSS3.0自带数据库可以使用SQL 2005 Server Management Studio来管理

默认情况下&#xff0c;安装完WSS3.0后&#xff0c;会自动安装一个自带的SQL Server 2005 Embedded Edition数据库&#xff0c;但是此数据库却没有管理工具,不像安装SQL 2005其它版本会有管理工具。如果你要管理数据库&#xff0c;这时怎么办呢。经过俺试了一上午了&#xff0c…

CPU的高速缓存存储器知识整理

基于缓存的存储器层次结构 基于缓存的存储器层次结构行之有效&#xff0c;是因为较慢的存储设备比较快的存储设备更便宜&#xff0c;还因为程序往往展示局部性&#xff1a; 时间局部性&#xff1a;被引用过一次的存储器的位置很可能在不远的将来被再次引用。 空间局部性&#x…

uniapp光标自动定义到文本框_word技巧自动生成毕业论文目录

一篇word文档&#xff0c;内容有大的章&#xff0c;小的节。如何把章节抽出来生成目录&#xff1f;WORD →点击需要插入的地方 → 插入菜单 → 索引和目录 → 目录 → 确定。1 创建标题目录Word 一般是利用标题或者大纲级别来创建目录的。因此&#xff0c;在创建目录之前&#…

JSTL

2019独角兽企业重金招聘Python工程师标准>>> 说明 JSTL 是 JAVA 中的一个定制标记库集。实现了JSP页面中代码的复用&#xff0c;增加了JSP页面的可读性&#xff0c;方便查看和参与开发 使用 1.下载地址 http://archive.apache.org/dist/jakarta/taglibs/standard/bi…

自然语言0_nltk中文使用和学习资料汇总

sklearn实战-乳腺癌细胞数据挖掘&#xff08;博主亲自录制视频教程&#xff09; https://study.163.com/course/introduction.htm?courseId1005269003&utm_campaigncommission&utm_sourcecp-400000000398149&utm_mediumshare http://blog.csdn.net/huyoo/article/…

学习关于时间在sql里面的对比,用if语句(这个有点特别)

需求&#xff1a;假如当前时间是大于starttime且小于endtime的则按starttime倒序排列显示一条记录&#xff1b;假如当前时间小于starttime且小于endtime则按starttime正序排列显示一条记录。要在一次sql查询中完成。 这个是论坛里面的&#xff0c;人家给出答案了&#xff0c;我…