学习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(FF)中js和css的不同
Apr 13 Javascript
javascript 全等号运算符使用说明
May 31 Javascript
枚举的实现求得1-1000所有出现1的数字并计算出现1的个数
Sep 10 Javascript
JS实现至少包含字母、大小写数字、字符的密码等级的两种方法
Feb 03 Javascript
jquery中EasyUI实现同步树
Mar 01 Javascript
JavaScript实现级联菜单的方法
Jun 29 Javascript
jQuery常用知识点总结以及平时封装常用函数
Feb 23 Javascript
利用js编写响应式侧边栏
Sep 17 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(放大缩小)
Dec 02 Javascript
jQuery实现图片上传预览效果功能完整实例【测试可用】
May 28 jQuery
详解如何在webpack中做预渲染降低首屏空白时间
Aug 22 Javascript
js+springMVC 提交数组数据到后台的实例
Sep 21 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
PHP chmod 函数与批量修改文件目录权限
2010/05/10 PHP
基于PHP开发中的安全防范知识详解
2013/06/06 PHP
php使用CURL伪造IP和来源实例详解
2015/01/15 PHP
关于php中的json_encode()和json_decode()函数的一些说明
2016/11/20 PHP
不用MOUSEMOVE也能滑动啊
2007/05/23 Javascript
Javascript 实现复制(Copy)动作方法大全
2014/06/20 Javascript
javascript实现复选框选中属性
2015/03/25 Javascript
简述jQuery ajax的执行顺序
2016/01/05 Javascript
js解决movebox移动问题
2016/03/29 Javascript
Nodejs中 npm常用命令详解
2016/07/04 NodeJs
js实现的光标位置工具函数示例
2016/10/03 Javascript
Node.js使用gm拼装sprite图片
2017/07/04 Javascript
webpack 最佳配置指北(推荐)
2020/01/07 Javascript
如何利用 JS 脚本实现网页全自动秒杀抢购功能
2020/10/12 Javascript
JavaScript实现原型封装轮播图
2020/12/27 Javascript
在Python程序中操作MySQL的基本方法
2015/07/29 Python
Python实现简单过滤文本段的方法
2017/05/24 Python
Python读取Json字典写入Excel表格的方法
2018/01/03 Python
python实现银联支付和支付宝支付接入
2019/05/07 Python
Python字符编码转码之GBK,UTF8互转
2020/02/09 Python
Python 程序报错崩溃后如何倒回到崩溃的位置(推荐)
2020/06/23 Python
Python如何进行时间处理
2020/08/06 Python
python help函数实例用法
2020/12/06 Python
澳大利亚家具和家居用品购物网站:Zanui
2018/12/29 全球购物
苹果台湾官网:Apple台湾
2019/01/05 全球购物
会计专业自荐信
2013/12/02 职场文书
出国导师推荐信
2014/01/16 职场文书
心理学专业大学生职业生涯规划范文
2014/02/19 职场文书
敬老院志愿者活动总结
2015/05/06 职场文书
2016暑期社会实践心得体会范文
2016/01/14 职场文书
接收函
2019/04/22 职场文书
解决SpringCloud Feign传对象参数调用失败的问题
2021/06/23 Java/Android
交互式可视化js库gojs使用介绍及技巧
2022/02/18 Javascript
Windows Server 2019 安装DHCP服务及相关配置
2022/04/28 Servers
Redis基本数据类型Zset有序集合常用操作
2022/06/01 Redis
Python使用pandas导入xlsx格式的excel文件内容操作代码
2022/12/24 Python