当前位置: 首页 > news >正文

jquery easy ui 验证框架

引入参考最下面API

missingMessage:未填写时显示的信息
validType:验证类型见下示例
invalidMessage:无效的数据类型时显示的信息
required="true" 必填项
class="easyui-validatebox" 文本验证
class="easyui-numberbox" 数字验证
html

   
  1. 邮箱验证:<input type="text" validtype="email" required="true" missingMessage="不能为空" invalidMessage="邮箱格式不正确" /><br />
  2. 网址验证:<input type="text" validtype="url" invalidMessage="url格式不正确[http://www.example.com]" /><br />
  3. 长度验证:<input type="text" validtype="length[8,20]" invalidMessage="有效长度8-20" /><br />
  4. 手机验证:<input type="text" validtype="mobile" /><br />
  5. 邮编验证:<input type="text" validtype="zipcode" /><br />
  6. 账号验证:<input type="text" validtype="account[8,20]" /><br />
  7. 汉子验证:<input type="text" validtype="CHS" /><br />
  8. 远程验证:<input type="text" validtype="remote['checkname.aspx','name']" invalidMessage="用户名已存在"/>
js

   
  1. // easyui通用验证规则
  2. $.extend($.fn.validatebox.defaults.rules, {
  3. date: {
  4. validator: function (value) {
  5. var reg = /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/;
  6. return reg.test(value);
  7. },
  8. message: '日期格式不正确 YYYY-MM-DD'
  9. },
  10. integer: {
  11. validator: function (value) {
  12. var reg = /^[\-\+]?\d+$/;
  13. return reg.test(value);
  14. },
  15. message: '无效的整数'
  16. },
  17. number: {
  18. validator: function (value) {
  19. var reg = /^[\-\+]?((([0-9]{1,3})([,][0-9]{3})*)|([0-9]+))?([\.]([0-9]+))?$/;
  20. return reg.test(value);
  21. },
  22. message: '无效的数值'
  23. },
  24. mobile: {
  25. validator: function (value) {
  26. alert(123)
  27. var reg = /^1[3|4|5|8|9]\d{9}$/;
  28. return reg.test(value);
  29. },
  30. message: '输入手机号码格式不准确.'
  31. }
  32. })



   
  1. $.extend($.fn.validatebox.defaults.rules, {
  2. ajaxLookName: {//ajax验证
  3. validator: function (value) {
  4. $.post((baseURL+"/housemanage/nhousegroupdef/vaild/lookhousename"),{houseName:value},function(rec){
  5. if(rec.code == "0"){
  6. if(rec.data.result){
  7. $.fn.validatebox.defaults.rules.ajaxLookName.message='看房团名称已被其它用户定义过,请修改!';
  8. return false;
  9. }else{
  10. return true;
  11. }
  12. }else{
  13. alert(rec.desc);
  14. }
  15. },"json").error(function(){
  16. alert("请求失败!");
  17. });
  18. },
  19. message: ''
  20. }
  21. })

验证

   
  1. $($($addDiv).find("#addForm")).form('validate')//返回 true false

至于 要不要加  $('input[type=text]').validatebox( );   使所有验证生效,api上说 设置了样式可以不必加,但是实际中和bootstarp集成中不能调用,一调用就出现莫名其妙的错误

最后说一下  easyui、不支持组合校验   渣渣  我也懒得自定义多种规则了  最多只能支持 一个必填 和 一个自定义验证
以上是正常的使用

与bootstarp使用的时候又出现各种奇葩问题

1.easyui js 要引两次
2.自定义的验证规则要写在第二次引easy ui 前面 否则不生效
3.自定义的ajax的规则不生效了,需要自己自定义 , 采用隐藏框吧
4.$('input[type=text]').validatebox();   使所有验证生效,api上说 设置了样式可以不必加,但是实际中和bootstarp集成中不能调用,一调用就出现莫名其妙的错误

第二种bug 代码

   
  1. <link rel="stylesheet" href="${baseURL}/js/3rd-plug/easy-ui-1.4.2/themes/black/easyui.css" type="text/css"/>
  2. <link rel="stylesheet" href="${baseURL}/js/3rd-plug/easy-ui-1.4.2/themes/icon.css" type="text/css"/>
  3. <script type="text/javascript" src="${baseURL}/js/3rd-plug/easy-ui-1.4.2/jquery.easyui.min.js"></script>
  4. <script type="text/javascript" src="${baseURL}/js/3rd-plug/easy-ui-1.4.2/locale/easyui-lang-zh_CN.js"></script>
  5. <script type="text/javascript" src="${baseURL}/js/3rd-plug/easy-ui-1.4.2/locale/common_validation-zh_CN.js"></script>
  6. <script>
  7. $.extend($.fn.validatebox.defaults.rules, {
  8. datecompare: {
  9. validator: function (value) {
  10. if($('#regEndtime').val()&&$('#regBegintime').val()>$('#regEndtime').val()){
  11. return false;
  12. }
  13. return true;
  14. },
  15. message: '报名开始时间不能大于报名截止时间,请修改!'
  16. },
  17. lookhousedatecompare: {
  18. validator: function (value) {
  19. if($('#regEndtime').val()&&$('#lookhousetime').val()<$('#regEndtime').val()){
  20. return false;
  21. }
  22. return true;
  23. },
  24. message: '看房时间必须大于报名截止时间,请修改!'
  25. },
  26. numcompare: {
  27. validator: function (value) {
  28. if($('#maxNum').val()&&$('#minNum').val()>$('#maxNum').val()){
  29. return false;
  30. }
  31. return true;
  32. },
  33. message: '成团最低人数必须不能大于成团最高人数,请修改!'
  34. }
  35. })
  36. </script>
  37. <script type="text/javascript" src="${baseURL}/js/3rd-plug/easy-ui-1.4.2/jquery.easyui.min.js"></script>

如上图   自定义验证规则要引在第二次前面

第三种bug 代码 


   
  1. $("#lookhousegroupName").on("blur",function(){
  2. if($("#lookhousegroupName").hasClass("validatebox-invalid")){
  3. return;
  4. }
  5. $.post((baseURL+"/housemanage/nhousegroupdef/vaild/lookhousename"),{houseName:($(this).val())},function(rec){
  6. if(rec.code == "0"){
  7. if(rec.data.result){
  8. $("#lookhousegroupNameajax").val("0");
  9. return false;
  10. }else{
  11. $("#lookhousegroupNameajax").val("1");
  12. }
  13. }else{
  14. alert(rec.desc);
  15. }
  16. },"json").error(function(){
  17. alert("请求失败!");
  18. });
  19. })

如上  $ ( "#lookhousegroupName" ). hasClass ( "validatebox-invalid" ) 加上这句 , 是要等元素验证通过后 再调用ajax,防止不必要的多余验证



最后贴上  api

通过 $.fn.validatebox.defaults 重写默认的 defaults。

验证框(validatebox)是为了验证表单输入字段而设计的。如果用户输入无效的值,它将改变背景颜色,显示警告图标和提示消息。验证框(validatebox)可与表单(form)插件集成,防止提交无效的字段。

722496-20170322144148955-1628395708.png

依赖

  • tooltip

用法

从标记创建验证框(validatebox)。


   
  1. <input id="vv" class="easyui-validatebox" data-options="required:true,validType:'email'">

使用 javascript 创建验证框(validatebox)。


   
  1. <input id="vv">

   
  1. $('#vv').validatebox({
  2. required: true,
  3. validType: 'email'
  4. });

检查密码和重新输入密码是相同的。


   
  1. // extend the 'equals' rule
  2. $.extend($.fn.validatebox.defaults.rules, {
  3. equals: {
  4. validator: function(value,param){
  5. return value == $(param[0]).val();
  6. },
  7. message: 'Field do not match.'
  8. }
  9. });

   
  1. <input id="pwd" name="pwd" type="password" class="easyui-validatebox" data-options="required:true">
  2. <input id="rpwd" name="rpwd" type="password" class="easyui-validatebox"
  3. required="required" validType="equals['#pwd']">

验证规则

验证规则是通过使用 required 和 validType 属性来定义的,这里是已经实施的规则:

  • email:匹配 email 正则表达式规则。
  • url:匹配 URL 正则表达式规则。
  • length[0,100]:允许从 x 到 y 个字符。
  • remote['http://.../action.do','paramName']:发送 ajax 请求来验证值,成功时返回 'true' 。

要自定义验证规则,重写 $.fn.validatebox.defaults.rules,来定义一个验证函数和无效的信息。例如,定义一个 minLength 验证类型:


   
  1. $.extend($.fn.validatebox.defaults.rules, {
  2. minLength: {
  3. validator: function(value, param){
  4. return value.length >= param[0];
  5. },
  6. message: 'Please enter at least {0} characters.'
  7. }
  8. });

现在您可以使用这个 minLength 验证类型来定义一个至少输入5个字符的输入框:


   
  1. <input class="easyui-validatebox" data-options="validType:'minLength[5]'">

属性

名称类型描述默认值
requiredboolean定义是否字段应被输入。false
validTypestring,array定义字段的验证类型,比如 email、url,等等。可能的值:
1、验证类型字符串,应用单个验证规则。
2、验证类型数组,应用多个验证规则。单个字段上的多个验证规则自版本 1.3.2 起可用。

代码实例:

        
  1. <input class="easyui-validatebox" data-options="required:true,validType:'url'">
  2. <input class="easyui-validatebox" data-options="
  3. required:true,
  4. validType:['email','length[0,20]']
  5. ">
null
delaynumber延迟验证最后的输入值。该属性自版本 1.3.2 起可用。200
missingMessagestring当文本框为空时出现的提示文本。该字段是必需的。
invalidMessagestring当文本框的内容无效时出现的提示文本。null
tipPositionstring定义当文本框的内容无效时提示消息的位置。可能的值:'left'、'right'。该属性自版本 1.3.2 起可用。right
deltaXnumber在 X 方向的提示偏移。该属性自版本 1.3.3 起可用。0
novalidateboolean当设置为 true 时,则禁用验证。该属性自版本 1.3.4 起可用。false

方法

名称参数描述
destroynone移除并销毁该组件。
validatenone进行验证以判定文本框的内容是否有效。
isValidnone调用 validate 方法并且返回验证结果,true 或者 false。
enableValidationnone启用验证。该方法自版本 1.3.4 起可用。
disableValidationnone禁用验证。该方法自版本 1.3.4 起可用。












相关文章:

  • java生成验证码并可刷新
  • JS三大经典变量命名法
  • 数字基础(Digital Fundamentals)中的truth table转化成表达式
  • 为你解惑之WPF经典9问详解
  • 输入一个整数,将这个整数以字符串的形式逆序输出 程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001...
  • MSER
  • 你知道第一个 C 语言编译器是如何编写的吗?
  • Haproxy的三种保持客户端会话保持方式
  • 每天一个linux命令(5):rm命令
  • linux调优-TIME_WAIT
  • TypeScript迭代器
  • thinkphp如何省略index.php
  • 安卓开源项目周报0329
  • 2018(2017)美图java服务端笔试(回忆录)
  • 2016蓝桥杯 煤球数目 (代码)
  • 【391天】每日项目总结系列128(2018.03.03)
  • 【node学习】协程
  • CSS 专业技巧
  • JAVA_NIO系列——Channel和Buffer详解
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • JavaScript学习总结——原型
  • passportjs 源码分析
  • python docx文档转html页面
  • Spark RDD学习: aggregate函数
  • spark本地环境的搭建到运行第一个spark程序
  • Spring Cloud中负载均衡器概览
  • Spring核心 Bean的高级装配
  • vue的全局变量和全局拦截请求器
  • Web标准制定过程
  • 大型网站性能监测、分析与优化常见问题QA
  • 基于游标的分页接口实现
  • 解析带emoji和链接的聊天系统消息
  • 移动端 h5开发相关内容总结(三)
  • 用element的upload组件实现多图片上传和压缩
  • 在Mac OS X上安装 Ruby运行环境
  • 正则表达式
  • ​什么是bug?bug的源头在哪里?
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #WEB前端(HTML属性)
  • (12)目标检测_SSD基于pytorch搭建代码
  • (7)STL算法之交换赋值
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (学习日记)2024.01.09
  • (转)拼包函数及网络封包的异常处理(含代码)
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • .NET 设计模式初探
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .NET6实现破解Modbus poll点表配置文件
  • .NET下的多线程编程—1-线程机制概述
  • @Service注解让spring找到你的Service bean