使用AngularJS对表单提交内容进行验证的操作方法


Posted in Javascript onJuly 12, 2017

AngularJS是一款优秀的前端JS框架,已经被用于Google的多款产品当中。它有着诸多特性,最为核心的是:MVC、模块化、自动化双向数据绑定、语义化标签、依赖注入等……使用它可以大大减少书写代码的工作量,但和Jquery不同,使用AngularJS有一定的难度,因此今天我将介绍以下怎样使用AngularJS来对表单的提交内容进行验证。

AngularJS对表单中常用的验证操作

$dirty 表单有填写记录
$valid 字段内容合法的
$invalid 字段内容是非法的
$pristine 表单没有填写记录
$error 表单验证不通过的错误信息

1.相关插件的导入:AngularJS和Jquery一样,是一种由程序员用js编写好然后封装起来的js插件,因此在使用之前要用以下代码来导入它。

<script src="libs/angular.js"></script>

注:该js插件最好放在body之后,自己写的js代码则放在AngularJS之后防止产生错误。

2.在导入完AngularJS插件之后,我们首先要在body中创建一个form表单,用于接下来的操作,然后在表单上或者body上加上ng-app=""属性来确定AngularJS的作用域,一般

推荐加在body上。

<body ng-app="app" ng-controller="ctrl"></body>

注:ng-controller="ctrl"用于设置控制器。

3.给form表单和input的name属性命名,给form及input设置name后会将form表单信息默认绑定到$scope作用域中,故可以使用formName.inputName.$验证操作 得到验证结果。

<form class="form-horizontal" name="myForm" novalidate>
  <input type="text" name="name" >
  <input type="email" name="mail">
  <input type="password" name="pwd" >
</form>

novalidata用于禁止h5自带的表单验证,防止多余影响。

例如:

myForm.text.$dirty="true";表单被填写过
myForm.text.$invalid"true";表单输入不合法
myForm.text.$error.required="true";表单必填但未填。

4.给input加上对应的验证:

<input type="text" name="name" ng-minlength="4" ng-maxlength="10" required ng-class="{erro:myForm.name.$invalid&&myForm.name.$dirty}"/>
<input type="email" name="mail" required />
<input type="password" name="pwd" ng-model="user.pwd" pattern="^\w{6,18}$"/>

注:

以上代码对text设置了最小长度4,最大长度10,必填的验证信息,

对email则使用了email自带验证,增加了必填要求,

对password则是设置了正则验证要求是6到18位的字母数字下划线。

5.给提交按钮加上ng-disabled="myForm.$dirty&&myForm.$invalid"属性在表单输入不合法时将按钮禁用来阻止表单内容提交。

注:myForm.$dirty&&myForm.$invalid表示在表单有输入的情况下输入错误。

以上步骤完成之后表单的验证就完成了,也可以加上span的ng-show="myForm.name.$invalid&&myForm.name.$dirty"属性来设置在不同错误时出现不同的提示信息,这样,一个可以验证是否提交的表单就完成了。

以上所述是小编给大家介绍的使用AngularJS对表单提交内容进行验证的操作方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
ajax中get和post的说明及使用与区别
Dec 23 Javascript
javascript实现简单的分页特效
Aug 12 Javascript
jQuery添加和删除指定标签的方法
Dec 16 Javascript
JS动态插入并立即执行回调函数的方法
Apr 21 Javascript
JS实现兼容火狐及IE iframe onload属性的遮罩层隐藏及显示效果
Aug 23 Javascript
zTree实现节点修改的实时刷新功能
Mar 20 Javascript
vue.js实现备忘录功能的方法
Jul 10 Javascript
微信小程序开发背景图显示功能
Aug 08 Javascript
vue-router路由懒加载的实现(解决vue项目首次加载慢)
Aug 28 Javascript
vue 搭建后台系统模块化开发详解
May 01 Javascript
vue router动态路由设置参数可选问题
Aug 21 Javascript
Vue 中 a标签上href无法跳转的解决方式
Nov 12 Javascript
JQuery EasyUI的一些常用组件
Jul 12 #jQuery
JavaScript严格模式下关于this的几种指向详解
Jul 12 #Javascript
jQuery+Ajax请求本地数据加载商品列表页并跳转详情页的实现方法
Jul 12 #jQuery
详解如何用webpack打包一个网站应用项目
Jul 12 #Javascript
利用node.js实现自动生成前端项目组件的方法详解
Jul 12 #Javascript
AngularJS实现select的ng-options功能示例
Jul 12 #Javascript
JavaScript基于activexobject连接远程数据库SQL Server 2014的方法
Jul 12 #Javascript
You might like
php缓存技术详细总结
2013/08/07 PHP
PHP中Laravel 关联查询返回错误id的解决方法
2017/04/01 PHP
Jquery创建层显示标题和内容且随鼠标移动而移动
2014/01/26 Javascript
JS(JQuery)操作Array的相关方法介绍
2014/02/11 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 图片库
2015/01/09 Javascript
bootstrap table 服务器端分页例子分享
2015/02/10 Javascript
ajax如何实现页面局部跳转与结果返回
2015/08/24 Javascript
angularjs学习笔记之双向数据绑定
2015/09/26 Javascript
每天一篇javascript学习小结(RegExp对象)
2015/11/17 Javascript
javascript从作用域链谈闭包
2020/07/29 Javascript
JavaScript实现下拉菜单的显示和隐藏
2016/01/05 Javascript
浅谈EasyUi ComBotree树修改 父节点选择的问题
2016/11/07 Javascript
jQuery实现倒计时重新发送短信验证码功能示例
2017/01/12 Javascript
JS实现双击内容变为可编辑状态
2017/03/03 Javascript
ES6新特性四:变量的解构赋值实例
2017/04/21 Javascript
详解webpack 多入口配置
2017/06/16 Javascript
vue+swiper实现侧滑菜单效果
2017/12/28 Javascript
JavaScript实现左右滚动电影画布
2020/02/06 Javascript
Vue3.0的优化总结
2020/10/16 Javascript
各个系统下的Python解释器相关安装方法
2015/10/12 Python
python实现批量解析邮件并下载附件
2018/06/19 Python
python cumsum函数的具体使用
2019/07/29 Python
Python函数式编程实例详解
2020/01/17 Python
python图片合成的示例
2020/11/09 Python
css3 border旋转时的动画应用
2016/01/22 HTML / CSS
Tommy Hilfiger美国官网:美国高端休闲领导品牌
2019/01/14 全球购物
超市仓管员岗位职责
2014/04/07 职场文书
节约粮食标语
2014/06/18 职场文书
2014年有孩子的离婚协议书范本
2014/10/08 职场文书
六一领导慰问欢迎词
2015/01/26 职场文书
老员工辞职信范文
2015/05/12 职场文书
2015年七年级班主任工作总结
2015/05/21 职场文书
小学生手册家长意见
2015/06/03 职场文书
退休欢送会主持词
2015/07/01 职场文书
教研活动主持词
2015/07/03 职场文书
使用CSS实现黑白格背景效果
2022/06/01 HTML / CSS