学习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 相关文章推荐
js获取页面引用的css样式表中的属性值方法(推荐)
Aug 19 Javascript
JavaScript toUpperCase()方法使用详解
Aug 26 Javascript
JavaScript制作简单分页插件
Sep 11 Javascript
Bootstrap Modal遮罩弹出层代码分享
Nov 21 Javascript
jquery-mobile表单的创建方法详解
Nov 23 Javascript
详解angular2实现ng2-router 路由和嵌套路由
Mar 24 Javascript
webpack 2.x配置reactjs基本开发环境详解
Aug 08 Javascript
在Swiper内如何制作CSS3动画效果示例代码
Dec 07 Javascript
Vue中保存数据到磁盘文件的方法
Sep 06 Javascript
JavaScript中filter的用法实例分析
Feb 27 Javascript
Node.JS枚举统计当前文件夹和子目录下所有代码文件行数
Aug 23 Javascript
Vue 按照创建时间和当前时间显示操作(刚刚,几小时前,几天前)
Sep 10 Javascript
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
Zend Framework实现具有基本功能的留言本(附demo源码下载)
2016/03/22 PHP
解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示
2016/11/25 PHP
PHP实现普通hash分布式算法简单示例
2018/08/06 PHP
PHP Primary script unknown 解决方法总结
2019/08/22 PHP
如果文字过长,则将过长的部分变成省略号显示
2006/06/26 Javascript
一个不错的用JavaScript实现的UBB编码函数
2007/03/09 Javascript
从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件
2011/02/23 Javascript
JS仿flash上传头像效果实现代码
2011/07/18 Javascript
使用jquery动态加载javascript以减少服务器压力
2012/10/29 Javascript
JavaScript设计模式之外观模式介绍
2014/12/28 Javascript
jQuery源码分析之jQuery.fn.each与jQuery.each用法
2015/01/23 Javascript
jquery控制页面部分刷新的方法
2015/06/24 Javascript
jquery模拟进度条实现方法
2015/08/03 Javascript
jQuery+正则+文本框只能输入数字的实现方法
2016/10/07 Javascript
JS代码实现百度地图 画圆 删除标注
2016/10/12 Javascript
微信公众平台开发教程(四) 实例入门:机器人回复(附源码)
2016/12/02 Javascript
详解给Vue2路由导航钩子和axios拦截器做个封装
2018/04/10 Javascript
Vuex新手的理解与使用详解
2019/05/31 Javascript
d3.js 地铁轨道交通项目实战
2019/11/27 Javascript
Python脚本判断 Linux 是否运行在虚拟机上
2015/04/25 Python
快速了解Python相对导入
2018/01/12 Python
python3利用venv配置虚拟环境及过程中的小问题小结
2018/08/01 Python
Python高斯消除矩阵
2019/01/02 Python
使用python turtle画高达
2020/01/19 Python
Python中itertools的用法详解
2020/02/07 Python
python 如何读、写、解析CSV文件
2021/03/03 Python
Html5适配iphoneX刘海屏的简单实现
2019/04/09 HTML / CSS
越南母婴用品购物网站:Kids Plaza
2020/04/09 全球购物
应届毕业生求职信范文分享
2013/12/26 职场文书
演讲稿怎么写才完美
2014/01/02 职场文书
三分钟演讲稿范文
2014/04/24 职场文书
节约能源标语
2014/06/17 职场文书
教师一帮一活动总结
2014/07/08 职场文书
详解分布式系统中如何用python实现Paxos
2021/05/18 Python
SQL Server的存储过程与触发器以及系统函数和自定义函数
2022/04/10 SQL Server
Java实现带图形界面的聊天程序
2022/06/10 Java/Android