今天和大家分享个有关于“html5中AmazeUI框架中JS表单验证实战案例展示!”这方面的相关内容知识,让大家对于html5中AmazeUI框架也可以有所了解!

1、需求

做一个内嵌到UTribe(一款Android App)的学生会活动报名系统前端页面,报名人数最少1人最多4人,表单动态增加最多四个,其中队名必填,队长的所有信息必填,队员的QQ、手机号码选填,参赛时间必选。

2、初步设计

这个项目只给了半天时间,而且之前没有在Android端调试页面的经验,而且没有调试布局的机会,只能一次做完部署上去看看效果如何。

3、问题

本人是小白,以前做表单验证都是在提交之前用js检查一下参数,但这个项目中参数较多,而且同一字段的校验方式不同(队长QQ、手机必填而队员不用),若再用之前的方法工作量显然较大,有没有更好的方法呢?这时候我看到了amazeUI的js验证框架,交互效果不错。

研究了下使用方法:

先将目标表单绑定一个validator函数,然后在需要验证的字段加上属性(required、pattern、mixlength等等),pattern除了HTML5中已有的email、url等正则,还可以自定义,最后填充function submit来确定表单信息都合法之后的操作。然后我把这个框架运用到了自己的项目上,添加了自定义正则表达式

这里的验证可以根据需求添加到对应字段上,如队长的QQ、手机号码添加验证而队员的不用添加。

<input type="text" class="js-pattern-qq" data-validation-message="QQ号不符合规范噢" name="qq" placeholder="输入QQ号" required>
<input type="text" class="js-pattern-mobile"  data-validation-message="手机号码不符合规范噢" name="mobile" placeholder="输入手机号码" required>

问题1:

这啥意思呢?仔细一看,原来是解释器认不出你的validator方法把,应该是少了某个js引用,遂导包解决。

问题2:

由于队员表单的信息和队长的很像,但我总不能一条一条append上去吧?这会产生两个问题,第一是工作量大,第二是代码不简洁,维护起来麻烦,遂想到用clone一个写好的div模板的方法来解决。

问题3:

由于要将每个队员的数据整合成json数组的形式传递到后台,在检验请求参数时发现只有队长有gender属性而队员没有,后来发现是因为radio一个name只有一个值,所以要动态改变clone模板的队员的表单的radio的name属性来实现不同队员间gender的差异。

 var radios = template.find('input[type=radio]');radios.each(function(){$(this).attr('name','gender'+g_index);})

然后就能正常接收不同队员的性别属性了。

问题4

覆写完submit方法提交表单后,原本以为到这基本完成了,但测试时发现若表单字段不合法,页面会自动刷新,提示信息闪现后消失,已填入的数据也没了,这显然不符合使用逻辑。后来发现问题出在:

<button type="submit" style="width: 100%;height: 100% " class="am-btn am-btn-default">报名</button>

注意这里button的类型是submit而不是button,submit会在提交后自动刷新页面,解决办法很简单,在validator对象的submit函数中检验参数时,若不合法则return false,这样页面就不会自动刷新了。

submit:function(){var formValidity = this.isFormValid();if(formValidity){if(!member.postMembers()){return false;}}else{alert("输入信息不合法!");return false;}}

完成效果展示:

amazeui验证遇到的坑

jsp样例:
form加上data-am-validator才能使验证生效:
<form id="addPopuForm" class="add-popu-form" data-am-validator><div class="inputItem"><div class="inputName">姓名</div> <!--required必填,minlength最小长度--><input type="text" id="name" name="name" class="" required minlength="2" maxlength="64" placeholder="请输入2-64位字符" autocomplete="off"></div><div class="inputItem"> <!--required必填--><div class="inputName">性别</div><select type="text" id="sex" name="sex" class="" required><option selected value="">请选择</option><option value="0">男</option><option value="1">女</option></select></div><div class="inputItem"><div class="inputName">年龄</div> <!--required必填,pattern正则表达式验证--><input type="text" required pattern="^([1-9]d{0,1}|100|[1]d{0,2}|200)$" id="age" name="age" class="" placeholder="请输入2-100" autocomplete="off"></div>
</form>js:
//注意下面的坑,两个配合才能生效
$("#addPopuForm").validator('destroy');//初始化,销毁之前的验证
$('#addPopuForm').validator({validateOnSubmit: true});//初始化参数,可以有多个,具体见参考文档http://amazeui.org/javascript/validator,提交时验证,配合上面的销毁实现销毁//重置表单
$("#addPopuForm")[0].reset();//提交时进行表单验证,formValidity为true通过验证
var formValidity = $('#addPopu').validator('isFormValid');

掌财社:html5中AmazeUI框架中JS表单验证实战案例展示!相关推荐

  1. html5中的pattern属性(表单验证input)

    pattern用于验证表单输入的内容,通常HTML5的type属性,比如email.tel.number.data类.url等,已经自带了简单的数据格式验证功能了,加上pattern后,前端部分的验证 ...

  2. 手把手教你自己写一个js表单验证框架

    其实我自己也就能简单用用js而已,但是呢,相对很多初学者来说多懂了点Know How所以斗 胆孟浪一下,将一些所得记录下来,以供更多的初学者能够知道一个东西的实现过程,省去 在源码里摸索的过程. 在表 ...

  3. 使用js表单验证中的onsubmit属性

    onsubmit的作用:组织表单数据的提交,如果onsubmit的值为true,则会跳转到指定页面,反之不会跳转,一般在js验证中使用,给js验证设定返回值true或false; 使用onsubmit ...

  4. Jquery中使用Validate插件使表单验证更加简单

    场景 效果 介绍 jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用的验证方法,包括 UR ...

  5. 掌财社:原材料涨价有多猛?上游一天一价中下游艰难抉择

    "所有板材的报价,仅限于当日当时确认并付款,没有付款的一律作废重报." "最近都忙着一个事--谈判,和各式的供应商谈判." "去年就提了要涨,但一直压 ...

  6. antd vue表单验证_ant design vue框架中自定义表单或单个表单框验证

    一.项目要求 1.要求:点击新增按钮弹出新增页面,在输入名称时进行验证,当输入名称和列表下的名称相同,即后台数据库中存在,此时将会提醒用户,该名称已存在, 2.要求:该名称不存在,则新增成功 二.思路 ...

  7. Winform开发框架中工作流模块的业务表单开发

    在我们开发工作流的时候,往往需要设计到具体业务表单信息的编辑,有些是采用动态编辑的,有些则是在开发过程中处理的,各有各的优点,动态编辑的则方便维护各种各样的表单,但是数据的绑定及处理则比较麻烦,而自定 ...

  8. JavaScript中的基本表单验证

    In the past, form validation would occur on the server, after a person had already entered in all of ...

  9. react hooks使用_我如何使用React Hooks在约100行代码中构建异步表单验证库

    react hooks使用 by Austin Malerba 奥斯汀·马勒巴(Austin Malerba) 我如何使用React Hooks在约100行代码中构建异步表单验证库 (How I bu ...

最新文章

  1. VS项目工程管理技巧
  2. ubuntu安装新字体
  3. 程序员能力提升:你应该知道的那些编程原则!!
  4. 机器学习中的距离和损失函数
  5. Flask入门之上传文件到本地服务器
  6. 宽量程电压电流 stm32_电压、电阻知识点汇总
  7. 数据--第52课 - 哈希表及其实现
  8. Mybatis框架的介绍以及详细使用,结合JDBC讲解,有利于对mybatis的注解和配置文件的理解,结合我上一篇文章,更好容易理解,通俗易懂,适合刚接触框架的新手(二)
  9. telnet测试端口
  10. wifi数据包解析_详细解析WiFi模块的基础知识
  11. elasticsearch报错master not discovered yet, this node has not previously joined a bootstrapped (v7+)..
  12. RT-Thread柿饼控件(1)-- AnimatedImage
  13. Android wifi开发介绍
  14. windows 下如何让一个窗口置顶?
  15. 黑鹰VIP教程超级大全集!!!千G容量!!!
  16. Mac下安装vim的插件YouCompleteMe及注意事项
  17. PHP的isset和empty
  18. CAD版本转换器转换文件的方法
  19. 【L2-034 口罩发放】天梯赛L2详解
  20. Go 整洁架构模版,建议收藏

热门文章

  1. 结构测试(白盒测试) 路径测试和数据流测试
  2. c语言编写程序接口,用C语言编写简单的接口程序(修正可运行)
  3. Windows下给GitHub 配置 GIT 工具时密匙添加问题
  4. word文档背景绿色怎么关闭
  5. c 语言 饮料自动售卖机的销售过程.,饮料自动售货机带C程序和设计报告.doc
  6. ScreenFlow 9.0.3 中文版 优秀的屏幕录像软件
  7. Odoo14免费开源ERP新功能预览
  8. 自制的 .net framework 强命名工具(支持.net4)
  9. 开发步骤_开发客户的六个步骤
  10. 地理建模——建模方法概述