使用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 相关文章推荐
jquery键盘事件介绍
Jan 31 Javascript
JQuery EasyUI 日期控件如何控制日期选择区间
May 05 Javascript
JavaScript中数据结构与算法(三):链表
Jun 19 Javascript
jQuery实现简单下拉导航效果
Sep 07 Javascript
JavaScript学习笔记之数组随机排序
Mar 23 Javascript
详解Angular2响应式表单
Jun 14 Javascript
js 公式编辑器 - 自定义匹配规则 - 带提示下拉框 - 动态获取光标像素坐标
Jan 04 Javascript
vue.js 获取select中的value实例
Mar 01 Javascript
微信小程序实现人脸检测功能
May 25 Javascript
Vue中点击active并第一个默认选中功能的实现
Feb 24 Javascript
详细分析Node.js 多进程
Jun 22 Javascript
JS检测浏览器开发者工具是否打开的方法详解
Oct 02 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
一台收音机,让一家人都笑逐颜开!
2020/08/21 无线电
php函数的常用方法及注意之处小结
2011/07/10 PHP
PHP实现图片旋转效果实例代码
2014/10/01 PHP
php array_values 返回数组的值实例详解
2016/11/17 PHP
PHP判断是否是微信打开,浏览器打开的方法
2018/03/14 PHP
项目实践之javascript技巧
2007/12/06 Javascript
JS 字符串连接[性能比较]
2009/05/10 Javascript
JQuery1.6 使用方法三
2011/11/23 Javascript
关闭页面时window.location事件未执行的原因分析及解决方案
2014/09/01 Javascript
jQuery实现根据类型自动显示和隐藏表单
2015/03/18 Javascript
js性能优化技巧
2015/11/29 Javascript
jQuery 中ajax异步调用的四种方式
2016/06/28 Javascript
使用nodejs中httpProxy代理时候出现404异常的解决方法
2016/08/15 NodeJs
BootStrap Fileinput的使用教程
2016/12/30 Javascript
JavaScript 总结几个提高性能知识点(推荐)
2017/02/20 Javascript
tab栏切换原理
2017/03/22 Javascript
JS获取填报扩展单元格控件的值的解决办法
2017/07/14 Javascript
基于Vue+element-ui 的Table二次封装的实现
2018/07/20 Javascript
Vue.set 全局操作简单示例
2019/09/19 Javascript
微信小程序实现手指拖动选项排序
2020/04/22 Javascript
Python中文竖排显示的方法
2015/07/28 Python
Python安装Flask环境及简单应用示例
2019/05/03 Python
python3.7实现云之讯、聚合短信平台的短信发送功能
2019/09/26 Python
Numpy中对向量、矩阵的使用详解
2019/10/29 Python
Python多继承以及MRO顺序的使用
2019/11/11 Python
python rolling regression. 使用 Python 实现滚动回归操作
2020/06/08 Python
Python3基于plotly模块保存图片表格
2020/08/03 Python
美国运动鞋和运动服零售商:Footaction
2017/04/07 全球购物
英国最大最好的无人机商店:Drones Direct
2019/07/12 全球购物
95%的面试官都会问到的50道Java线程题,附答案
2012/08/03 面试题
《最可爱的人》教学反思
2014/02/14 职场文书
文明和谐家庭事迹材料
2014/05/18 职场文书
2015年教师业务工作总结
2015/05/26 职场文书
导师鉴定意见
2015/06/05 职场文书
2015年卫生院健康教育工作总结
2015/07/24 职场文书
MySQL创建表操作命令分享
2022/03/25 MySQL