学习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 相关文章推荐
网页禁用右键实现代码(JavaScript代码)
Oct 29 Javascript
JS中Iframe之间传值及子页面与父页面应用
Mar 11 Javascript
浏览器图片选择预览、旋转、批量上传的JS代码实现
Dec 04 Javascript
简单实现异步编程promise模式
Jul 31 Javascript
JavaScript html5 canvas绘制时钟效果
Mar 01 Javascript
JavaScript弹窗基础篇
Apr 27 Javascript
jQuery EasyUI提交表单验证
Jul 19 Javascript
Vue 项目分环境打包的方法示例
Aug 03 Javascript
详解js访问对象的属性和方法
Oct 25 Javascript
vue+Vue Router多级侧导航切换路由(页面)的实现代码
Dec 20 Javascript
npm 常用命令详解(小结)
Jan 17 Javascript
javascript实现超好看的3D烟花特效
Jan 01 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概述.
2006/10/09 PHP
php生成局部唯一识别码LUID的代码
2012/10/06 PHP
ThinkPHP的cookie和session冲突造成Cookie不能使用的解决方法
2014/07/01 PHP
PC端微信扫码支付成功之后自动跳转php版代码
2017/07/07 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
2020/02/18 PHP
由浅到深了解JavaScript类
2006/09/08 Javascript
JavaScript 应用类库代码
2008/06/02 Javascript
jquery获取tr并更改tr内容示例代码
2014/02/13 Javascript
基于编写jQuery的无缝滚动插件
2014/08/02 Javascript
jQuery通过Ajax返回JSON数据
2015/04/28 Javascript
基于BootStrap Metronic开发框架经验小结【五】Bootstrap File Input文件上传插件的用法详解
2016/05/12 Javascript
底部悬浮通栏可以关闭广告位的实现方法
2016/06/01 Javascript
js实现文字列表无缝滚动效果
2017/06/23 Javascript
Vue内容分发slot(全面解析)
2017/08/19 Javascript
JS中实现一个下载进度条及播放进度条的代码
2019/06/10 Javascript
微信小程序实现消息框弹出动画
2020/04/18 Javascript
解决layui-table单元格设置为百分比在ie8下不能自适应的问题
2019/09/28 Javascript
微信小程序可滑动月日历组件使用详解
2019/10/21 Javascript
js实现随机点名程序
2020/09/17 Javascript
JS实现导航栏楼层特效
2020/01/01 Javascript
jquery实现上传图片功能
2020/06/29 jQuery
python用列表生成式写嵌套循环的方法
2018/11/08 Python
selenium+python自动化测试之使用webdriver操作浏览器的方法
2019/01/23 Python
Python IDE Pycharm中的快捷键列表用法
2019/08/08 Python
pytorch使用horovod多gpu训练的实现
2020/09/09 Python
纯CSS3实现的阴影效果
2014/12/24 HTML / CSS
ABOUT YOU匈牙利:500个最受欢迎的时尚品牌
2019/07/19 全球购物
俄罗斯连接商品和买家的在线平台:goods.ru
2020/11/30 全球购物
软件测试面试题
2014/01/05 面试题
村长党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
遗嘱格式范本
2015/08/07 职场文书
结婚喜宴迎宾词
2015/08/10 职场文书
教你快速开启Apache SkyWalking的自监控
2021/04/25 Servers
python内置进制转换函数的操作
2021/06/02 Python
python中对列表的删除和添加方法详解
2022/02/24 Python
2022漫威和DC电影上映作品
2022/04/05 欧美动漫