您现在的位置是:网站首页> 编程资料编程资料
AmazeUI的JS表单验证框架实战示例分享AmazeUI在模态框中嵌入表单形成模态输入框
2021-08-30
1275人已围观
简介 这篇文章主要介绍了AmazeUI的JS表单验证框架实战示例分享,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
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、手机号码添加验证而队员的不用添加。
问题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的类型是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才能使验证生效:js: //注意下面的坑,两个配合才能生效 $("#addPopuForm").validator('destroy');//初始化,销毁之前的验证 $('#addPopuForm').validator({validateOnSubmit: true});//初始化参数,可以有多个,具体见参考文档http://amazeui.org/javascript/validator,提交时验证,配合上面的销毁实现销毁 //重置表单 $("#addPopuForm")[0].reset(); //提交时进行表单验证,formValidity为true通过验证 var formValidity = $('#addPopu').validator('isFormValid');
到此这篇关于AmazeUI的JS表单验证框架实战示例分享的文章就介绍到这了,更多相关AmazeUI的JS表单验证内容请搜索以前的文章或继续浏览下面的相关文章,希望大家以后多多支持!
相关内容
- 浅析HTML5 meta viewport参数基于Html5+SVG制作gsap输入邮箱订阅表单特效代码详解HTML5布局和HTML5标签HTML5实现移动端点击翻牌功能html5 拖拽及用 js 实现拖拽功能的示例代码html5小程序飞入购物车(抛物线绘制运动轨迹点)app内嵌H5 webview 本地缓存问题的解决使用HTML5做的导航条详细步骤利用Node实现HTML5离线存储的方法HTML5逐步分析实现拖放功能的方法移动端HTML5 input常见问题(小结)
- 一个基于canvas的移动端图片编辑器的实现canvas如何实现多张图片编辑的图片编辑器
- 详解HTML5布局和HTML5标签
- HTML5实现移动端点击翻牌功能移动端Html5中百度地图的点击事件移动端开发HTML5页面点击按钮后出现闪烁或黑色背景的解决办法
- html5 拖拽及用 js 实现拖拽功能的示例代码HTML5实现拖拽互动改变元素颜色特效html5拖拽应用记录及注意点基于Html5实现的react拖拽排序组件示例HTML5拖拽功能实现的拼图游戏
- html5小程序飞入购物车(抛物线绘制运动轨迹点)HTML5 本地存储实现购物车功能用CSS样式生成搜索、购物车等图标样式(图标字体库)
- app内嵌H5 webview 本地缓存问题的解决Html5 webview元素定位工具的实现html5调用app分享功能示例(WebViewJavascriptBridge)
- 使用HTML5做的导航条详细步骤html5实现点击弹出图片功能html5 录制mp3音频支持采样率和比特率设置html5表单的required属性使用html5调用摄像头实例代码HTML5页面音频自动播放的实现方式Html5大屏数据可视化开发的实现html实现弹窗的实例HTML5来实现本地文件读取和写入的实现方法HTML 罗盘式时钟的实现HTML5简单实现添加背景音乐的几种方法
- 利用Node实现HTML5离线存储的方法H5离线存储Manifest原理及使用HTML5中的网络存储实现方式使用HTML5 IndexDB存储图像和文件的示例HTML5离线应用与客户端存储的实现HTML5 本地存储实现购物车功能在HTML5 localStorage中存储对象的示例代码
- HTML+CSS+JavaScript实现图片3D展览的示例代码利用CSS3制作简单的3d半透明立方体图片展示使用CSS3实现一个3D相册效果实例CSS3制作炫酷带方向感应的鼠标滑过图片3D动画css3实现超立体3D图片侧翻倾斜效果