学习LayUI时自研的表单参数校验框架案例分析


Posted in Javascript onJuly 29, 2019

开发背景&痛点 :

每次写前端的表单的时候需要对表单里用户填写的内容进行校验,减少服务器压力,提前对已知错误对用户提示。每次会要写很多的if else等等对输入框中的内容进行判断,并对为空、格式不正确等情况作出对应提示。

需要写大量重复的if else语句,实在太麻烦,所以自己写了这个框架用于前端参数的校验。

本框架基于LayUI框架

对于三种开发者情况:

1、完全不会LayUI也没有任何关系 在html头部中添加如下代码就OK了

<script src="https://www.layuicdn.com/layui/layui.js"></script>
<link rel="stylesheet" href="https://www.layuicdn.com/layui/css/layui.css">
<script>
  var layer=layui.layer;
  var form=layui.form;
  layui.use(['layer','form'],function () {})
</script>

2、使用了LayUI框架进行开发则无需做改变

3、使用了其他前端UI框架将源码中下面语句转换成你的UI框架的提示框即可。

layer.tips(tipname+'不合法('+tiplegal+')',chooser,{
        tips: [2, '#FF0000']
      })

使用本参数校验框架需要引入一个js文件(可以下载到本地使用)

在Html头部插入如下代码引入JS

<script src="https://mywarehouse.oss-cn-shenzhen.aliyuncs.com/ParaCheck.js"></script>

使用案例

HTML:

学习LayUI时自研的表单参数校验框架案例分析

本注册页面对应JS文件

学习LayUI时自研的表单参数校验框架案例分析

使用效果

直接点击注册

学习LayUI时自研的表单参数校验框架案例分析

输入1后点击注册

学习LayUI时自研的表单参数校验框架案例分析

API:

核心接口:

1:paraCheck(chooser,name,regex,legal)//单个输入框检查函数,传入的三个参数为,选择器(#id或者.class)、输入框名称(中文意义,比如手机号码)、正则匹配式(比如验证码输入框对应的正则表达式为/^[0-9]{6}$/)

2:multiParaCheck(choosers,names,regexs,legals)//批量校验函数

返回值:

1:true  全部通过校验

2:false 出现未通过校验的输入框,实时进行如上图对用户进行提示

备注:第一个参数必填,第二、三、四个参数选填,建议都传入,用户体验感好,如果您不想麻烦,只检测是否是空的,那只需要传入第一个参数。

图中注册界面脚本代码:

(注册按钮onclick="register()")

function register() {
  var choosers=['#phone','#content','#password','#name','#stuId','#gender','#grade','#major','#classNumber'];
  var names=['手机号码','短信验证码','密码','姓名','学号','性别','年级','专业','班级'];
  var regexs=[/^((13[0-9])|(14[5,7,9])|(15([0-3]|[5-9]))|(166)|(17[0,1,3,5,6,7,8])|(18[0-9])|(19[8|9]))\d{8}$/,/^[0-9]{6}$/,/^[0-9a-zA-Z]{8-20}$/,/^[\u4e00-\u9fa5]{2,5}$/,/^2[0-9]{11}$/,/^[男女]$/,/^20[0-9]{2}$/,/^[\u4e00-\u9fa5]{2,10}$/,/^[0-9]{1,2}$/];
  var legals=['11位数字','6位数字','8-20位数字、字母','2-5位中文','12位数字','男|女','4位数字','2-10位中文','1-2位数字'];
  if(multiParaCheck(choosers,names,regexs,legals))
  {
    if ($('#password').val()!=$('#repeatPassword').val())
    {
      layer.tips('两次密码输入不一致','#repeatPassword',{
        tips: [2, '#FF0000']
      });
      return;
    }
    var formData=new FormData();
    for(var i=0;i<choosers.length;i++)
      formData.append(choosers[i].replace('#',''),$(choosers[i]).val());
    $.ajax({
      type: "get",
      url: "/fpa/member/login",
      xhrFields: {withCredentials: true},
      data: formData,
      dataType: "text",
      success: function (data) {
        layer.alert(data);
        if (data.indexOf('成功') > -1)
          window.href.open('/login.html');
      }
    });
  }
}

总结

以上所述是小编给大家介绍的学习LayUI时自研的表单参数校验框架案例分析,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
IE和Firefox在JavaScript应用中的兼容性探讨
Apr 01 Javascript
javascript IE中的DOM ready应用技巧
Jul 23 Javascript
JQuery 绑定select标签的onchange事件,弹出选择的值,并实现跳转、传参
Jan 06 Javascript
表单类各种类型(文本框)失去焦点效果jquery代码
Apr 26 Javascript
jQuery实用密码强度检测
Mar 02 Javascript
easyUI下拉列表点击事件使用方法
May 18 Javascript
JS实现的汉字与Unicode码相互转化功能分析
May 25 Javascript
node中间层实现文件上传功能
Jun 11 Javascript
详解基于Vue cli生成的Vue项目的webpack4升级
Jun 19 Javascript
JavaScript ES2019中的8个新特性详解
Feb 20 Javascript
在layui中使用form表单监听ajax异步验证注册的实例
Sep 03 Javascript
vue实现简易音乐播放器
Aug 14 Vue.js
jquery.pager.js分页实现详解
Jul 29 #jQuery
javascript面向对象创建对象的方式小结
Jul 29 #Javascript
jquery.pager.js实现分页效果
Jul 29 #jQuery
vue-router跳转时打开新页面的两种方法
Jul 29 #Javascript
JS实现移动端点击按钮复制文本内容
Jul 28 #Javascript
微信小程序文字显示换行问题
Jul 28 #Javascript
vue router 跳转时打开新页面的示例方法
Jul 28 #Javascript
You might like
PHP.MVC的模板标签系统(二)
2006/09/05 PHP
PHP动态图像的创建
2006/10/09 PHP
如何去掉文章里的 html 语法
2006/10/09 PHP
php注销代码(session注销)
2012/05/31 PHP
深入浅析php json 格式控制
2015/12/24 PHP
php打乱数组二维数组多维数组的简单实例
2016/06/17 PHP
Nigma vs Liquid BO3 第二场2.13
2021/03/10 DOTA
在Javascript中定义对象类别
2006/12/22 Javascript
JavaScript 应用类库代码
2008/06/02 Javascript
javascript 隔行换色函数代码
2010/10/24 Javascript
自用js开发框架小成 学习js的朋友可以看看
2010/11/16 Javascript
php与js的区别是什么
2013/08/05 Javascript
JavaScript变量的作用域全解析
2015/08/14 Javascript
基于jquery fly插件实现加入购物车抛物线动画效果
2016/04/05 Javascript
JavaScript编写页面半透明遮罩效果的简单示例
2016/05/09 Javascript
mvvm双向绑定机制的原理和实现代码(推荐)
2016/06/07 Javascript
Javascript中浏览器窗口的基本操作总结
2016/08/18 Javascript
angularJs关于指令的一些冷门属性详解
2016/10/24 Javascript
原生JS实现在线问卷调查投票特效
2017/01/03 Javascript
js微信分享实现代码
2020/10/11 Javascript
koa router 多文件引入的方法示例
2019/05/22 Javascript
vue使用prop可以渲染但是打印台报错的解决方式
2019/11/13 Javascript
Vue数字输入框组件使用方法详解
2020/02/10 Javascript
JavaScript适配器模式原理与用法实例详解
2020/03/09 Javascript
[34:08]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS EG
2018/03/30 DOTA
python算法学习之基数排序实例
2013/12/18 Python
python实现带错误处理功能的远程文件读取方法
2015/04/29 Python
简单介绍Python中的try和finally和with方法
2015/05/05 Python
Django实现分页功能
2018/07/02 Python
Python爬取商家联系电话以及各种数据的方法
2018/11/10 Python
HTML5之SVG 2D入门9—蒙板及mask元素介绍与应用
2013/01/30 HTML / CSS
美国第一个网上卖鞋零售商:OnlineShoes.com
2017/09/24 全球购物
LG西班牙网上商店:Tienda LG Online Es
2019/07/30 全球购物
俄罗斯女装店:12storeez
2019/10/25 全球购物
sleep()方法和wait()方法的区别是什么
2012/11/17 面试题
让人瞬间清醒的句子,句句经典,字字如金
2019/07/08 职场文书