当前位置 : 主页 > 网页制作 > html >

layui表单验证

来源:互联网 收集:自由互联 发布时间:2021-06-12
1.layui表单验证 低版本的layui的表单验证有一些bug,比如,想实现非必填的邮箱校验,直接使用lay-verify="email"就会有问题。此时的效果是格式校验正确,但是不填的时候会报错。 此时有

1.layui表单验证

  低版本的layui的表单验证有一些bug,比如,想实现非必填的邮箱校验,直接使用lay-verify="email"就会有问题。此时的效果是格式校验正确,但是不填的时候会报错。

  此时有这么几个解决方法:

  1.1 升级插件

  在高版本的layui中这个问题是解决了的。附上部分源码

 1 this.config = {
 2                 verify: {
 3                     required: [/[\S]+/, "必填项不能为空"],
 4                     phone: [/(^$)|^1\d{10}$/, "请输入正确的手机号"],
 5                     email: [/(^$)|^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/, "邮箱格式不正确"],
 6                     url: [/(^$)|(^#)|(^http(s*):\/\/[^\s]+\.[^\s]+)/, "链接格式不正确"],
 7                     number: [/(^$)|^\d+$/,‘只能填写数字‘],
 8                     date: [/(^$)|^(\d{4})[-\/](\d{1}|0\d{1}|1[0-2])([-\/](\d{1}|0\d{1}|[1-2][0-9]|3[0-1]))*$/, "日期格式不正确"],
 9                     identity: [/(^$)|(^\d{15}$)|(^\d{17}(x|X|\d)$)/, "请输入正确的身份证号"]
10                 }
11 }

  此时加上了(^$)|,所以为空的时候也是校验通过的了。

  1.2 改插件源码

  道理同上,需要改的是form.jslayui.all.js。

  1.3 自定义校验

  原理还是和上边一样的。关键代码:

 1 form.verify({
 2       yearLength: function(value){
 3           if(value.length !== 4){
 4                   return ‘输入年份格式错误‘;
 5                 }
 6           }
 7           ,numberQq: function(value){
 8               if(!/(^$)|^\d+$/.test(value)){
 9                     return ‘QQ号码格式错误‘;
10                   }
11           }
12           ,emaliReg: function(value){
13               if(!/(^$)|^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(value)){
14                     return ‘邮箱格式错误‘;
15                   }
16           }
17       });

2.一些知识点回顾

  2.1 元素选择器循环

  元素选择器选中的元素是个数组,有长度属性,但是不是严格意义的数组,所以不能使用数组的forEach。它有自己的循环,叫each,且两个参数第一个是index,第二个是e,与普通js数组的forEach参数顺序相反。

  2.2 $(window).height() 和 $(document).height()

  前者是可见区域的高度,后者是文档高度。这个知识点很基础也很实用。

  2.3 jquery选择器parent和parents

  前者选取的是上一级,而后者顾名思义可以选择到全部上级,因而可以结合其他选择器选择特定父元素,如$($(‘.del_con‘)[0]).parents(‘.connecter‘)

网友评论