教你用AngularJS框架一行JS代码实现控件验证效果
2023-06-13 09:15:32 时间
如上图所示,我们需要实现如下这些验证功能:
控件都是必输控件
都需要控制最大长度
第一次打开页面,控件不能显示为错误状态
输入内容再清空后,必输控件需要显示为错误状态
只有所有输入合法后,发布按钮才能变为可用状态
通过AngularJS,我们可以很轻松的实现这些要求,只需要1行JS代码。UI样式这里采用的是Bootstrap。先上示例代码:
HTML。
<!DOCTYPEhtml> <htmllang="zh-cn"ng-app="ftitApp"> <head> <metacharset="utf-8"/> <title>Demo</title> <linkhref="/Content/bootstrap.css"rel="stylesheet"/> <scriptsrc="/Scripts/angular.js"></script> </head> <body> <divclass="containerbody-content"> <!--主要内容区域--> <divclass="rowmain-content"> <divclass="col-md-9"> <!--联系我们表单区域--> <formaction="/Contact/Create"method="post"role="form"name="createContactForm"ng-controller="ContactCreateController"> <!--UserName您的称呼--> <divclass="form-grouphas-feedback"ng-class="{"has-success":!createContactForm.UserName.$pristine&&createContactForm.UserName.$valid,"has-error":!createContactForm.UserName.$pristine&&createContactForm.UserName.$invalid}"> <labelfor="UserName">您的称呼*</label> <inputtype="text"class="form-control"ng-model="userName"name="UserName"autofocus=""requiredng-maxlength=30> <divng-show="!createContactForm.UserName.$pristine&&createContactForm.UserName.$valid"> <spanclass="glyphiconglyphicon-okform-control-feedback"></span> </div> <divng-show="!createContactForm.UserName.$pristine&&createContactForm.UserName.$invalid"> <spanclass="glyphiconglyphicon-removeform-control-feedback"></span> </div> </div> <!--UserMail邮箱地址--> <divclass="form-grouphas-feedback"ng-class="{"has-success":!createContactForm.UserMail.$pristine&&createContactForm.UserMail.$valid,"has-error":!createContactForm.UserMail.$pristine&&createContactForm.UserMail.$invalid}"> <labelfor="UserMail">邮箱地址*</label> <inputtype="email"class="form-control"ng-model="userMail"name="UserMail"requiredng-maxlength=30> <divng-show="!createContactForm.UserMail.$pristine&&createContactForm.UserMail.$valid"> <spanclass="glyphiconglyphicon-okform-control-feedback"></span> </div> <divng-show="!createContactForm.UserMail.$pristine&&createContactForm.UserMail.$invalid"> <spanclass="glyphiconglyphicon-removeform-control-feedback"></span> </div> </div> <!--Subject主题--> <divclass="form-grouphas-feedback"ng-class="{"has-success":!createContactForm.Subject.$pristine&&createContactForm.Subject.$valid,"has-error":!createContactForm.Subject.$pristine&&createContactForm.Subject.$invalid}"> <labelfor="Subject">主题*</label> <inputtype="text"class="form-control"ng-model="subject"name="Subject"requiredng-maxlength=100> <divng-show="!createContactForm.Subject.$pristine&&createContactForm.Subject.$valid"> <spanclass="glyphiconglyphicon-okform-control-feedback"></span> </div> <divng-show="!createContactForm.Subject.$pristine&&createContactForm.Subject.$invalid"> <spanclass="glyphiconglyphicon-removeform-control-feedback"></span> </div> </div> <!--Content内容--> <divclass="form-grouphas-feedback"ng-class="{"has-success":!createContactForm.Content.$pristine&&createContactForm.Content.$valid,"has-error":!createContactForm.Content.$pristine&&createContactForm.Content.$invalid}"> <labelfor="Content">内容*</label> <textareacols="4"rows="5"class="form-control"ng-model="content"name="Content"requiredng-maxlength=1000></textarea> <divng-show="!createContactForm.Content.$pristine&&createContactForm.Content.$valid"> <spanclass="glyphiconglyphicon-okform-control-feedback"></span> </div> <divng-show="!createContactForm.Content.$pristine&&createContactForm.Content.$invalid"> <spanclass="glyphiconglyphicon-removeform-control-feedback"></span> </div> </div> <!--提交按钮--> <divclass="form-group"> <divng-show="createContactForm.$valid"> <inputtype="image"src="/Content/images/comment_publish_button.png"onsubmit="submit();"value="发布"ng-disabled="!createContactForm.$valid"/> </div> <divng-show="!createContactForm.$valid"> <imgsrc="/Content/images/invalid_publish_button.png"/> </div> </div> </form> </div> </div> </div> <scriptsrc="/Scripts/ftit/ContactCreateController.js"></script> </body> </html>
JS代码(真的只有一行哟)
ContractCreateController.js
varftitAppModule=angular.module("ftitApp",[]);
这样就好啦。几个关键的地方解释一下:
ng-class:这个标签用来控制class的值。例如ng-class="{"has-success":!createContactForm.Content.$pristine}的意思就是,如果!createContactForm.Content.$pristine的值为true,class的值就为has-success。
ng-show:控制是否显示该控件。
createContactForm.$valid:全部验证通过后,值为true,否则为false
createContactForm.Content.$valid:标识Content控件是否通过验证,通过为true,否则为false
createContactForm.Content.$pristine:标识Content控件是否从未输入过。从未输入为true,否则为false
更细节的技术问题请查看AngularJS的技术文档。
相关文章
- 微信JS-SDK实现自定义分享功能,分享给朋友,分享到朋友圈「建议收藏」
- 初识js中的闭包_Js闭包中变量理解
- jsp常用标签有哪些_foreach js
- leetcode 3. 无重复字符的最长子串 js 实现
- js中四舍五入的方法_JS取整
- JS获取当前年份_js获取当前时间年月日
- 彻底弄懂JS原型与原型链
- vue.js客服系统实时聊天项目开发(一)路由与子路由-全局变量-elementui搭建基本框架
- web前端js的MV*框架最值得关注的七个亮点框架详解编程语言
- JS技术连接Oracle数据库实现数据交互(js连接oracle实例)
- JObj预览一个JS的框架
- Riot.js快速的JavaScript单元测试框架
- Js小数验证函数代码(基于正则)
- js通过googleAIP翻译PHP系统的语言配置的实现代码
- JS刷新框架外页面七种实现代码
- js导入导出excel(实例代码)
- js采用map取到id集合组并且实现点击一行选中一行
- JS操作iframe里的dom(实例讲解)
- js获取当前地址JS获取当前URL的示例代码
- 让浏览器DOM元素最后加载的js方法