angular编写表单验证
angular编写表单验证#
一、整体概述
表单内容如下图,包括常用的用户名、密码、确认密码、手机、邮箱等

- 整体js代码很少,就一个指令用于写确认密码和密码是否相等。其他 验证都是使用angular自带的指令进行校验和显示。
- 本demo还使用了bootstrap的栅栏功能进行布局,因为想写的是demo所以很多样式以及其他限制就不写了,我认为越是简单越好让别人改写使用
二、重点说明
1、表单属性:
$dirty:已经修改过
$invalid:不合法
$valid:合法
$error:错误
$pristine:未修改过
novalidate 阻止表单默认操作
<span class="col-4" ng-show="myForm.password.$dirty && myForm.password.$invalid">
<small class="text-danger" ng-show="myForm.password.$error.required">
密码是必填的
</small>
<small class="text-danger" ng-show="myForm.password.$error.minlength">
长度不能小于8位
</small>
<small class="text-danger" ng-show="myForm.password.$error.maxlength">
长度不能大于64位
</small>
</span>
**2、相关指令:**
ng-minlength:最小长度
ng-maxlength:最大长度
required:必填
ng-pattern:正则表达式验证
ng-disabled:按钮禁用
<input type="text" class="col-6" name="phone" ng-model="phone" ng-pattern="/(^0\d{2,3}\-\d{7,8}$)|(^1[3|4|5|6|7|8][0-9]{9}$)/" required/>
<button ng-disabled="myForm.$invalid" ng-click="submit()">submit</button>
**3、form表单一定要有name属性,每个input值也需要有name属性,比如已经输入过的表单表示是:myForm.name.$dirty 即 表单name.输入name.表单属性**
4、确认密码自定义指令
确认密码这个暂时无法通过原有的指令实现,所以使用了directive,主要是通过观察两个输入框的值,如果不相等则在确认密码栏后显示错误信息,如下
var app = angular.module('app',[]);
app.directive('compare',function(){
return {
require: 'ngModel',
link: function(scope,ele,attrs,ctrl){
var flag = false;
scope.$watch("password",function(scope,ele,attrs,ctrl){
var password2 = attrs.myForm.password2.$viewValue;
if(scope != password2) {
flag = true;
}else{
flag = false;
}
attrs.myForm.password2.$invalid = flag;
})
scope.$watch("password2",function(scope,ele,attrs,ctrl){
var password = attrs.myForm.password.$viewValue;
if(scope != password) {
flag = true;
}else{
flag = false;
}
attrs.myForm.password2.$invalid = flag;
})
}
}
})
源代码见github:`https://github.com/liaoanran/angular-formValidation`
angular编写表单验证的更多相关文章
- angular js 表单验证
<!doctype html> <html ng-app="myapp"> <head> <meta charset="UTF- ...
- angular之表单验证与ngMessages
刚接触angular1.x很多经常用到的ngMessages的地方,这里顺便记一下,效果如下图: 如果引用了angular-messages.js报如下错误,说明你的angular.js和angula ...
- angular.js表单验证
表单验证<AngularJs> 常用的表单验证指令 1. 必填项验证 某个表单输入是否已填写,只要在输入字段元素上添加HTML5标记required即可: <input type=& ...
- Angular自定义表单验证
前端表单验证 为年龄输入框添加了两个验证,并分情况填写了提示语 <form nz-form [formGroup]="validateForm"> <nz-for ...
- angular 表单验证
最近在用angular写表单验证时 , 不小心把ng-model全替换删掉了, 然后发现之前写的验证都失效, 在查阅资料和反复修改摸索后, 发现angular中的表单验证, 都是基于ng-model的 ...
- 让Angular自定义组件支持form表单验证
Angular提供了一套非常强大的表单验证库(vue和react都需要第三方库的支持),可以非常方便简单实现web应用程序中的表单验证功能.但是如何让我们自定义的组件也支持验证呢? 我遇到一个需求是封 ...
- Angular表单验证
novalidate 去掉html5自带的验证 ng-minlength 规定输入文本的最小长度 ng-maxlength 规定输入文本的最大长度 ng-submit 接收一个方法名 ...
- angular中的表单验证
angular中的表单验证很强大, 一共有5中验证信息,$valid,$invalid,$pristine,$dirty,$error. $valid-----当验证通过的时候,为true,不通过的时 ...
- angular学习的一些小笔记(中)之表单验证
表单验证 我去,我感觉我这个人其实还是一个很傻逼的一个人,老是因为拼错了一个单词或者怎么样就浪费我很长时间,这样真的不行不行,要正确对待这个问题,好了,说正题吧,angular也有表单验证minlen ...
随机推荐
- linux打印彩色字
echo显示带颜色,需要使用参数-e格式如下:echo -e "\033[字背景颜色;文字颜色m字符串\033[0m"例如: echo -e "\033[41;37m T ...
- 企业级数据库监控利器Lepus
开篇介绍官方网站:http://www.lepus.cc开源企业级数据库监控系统简洁.直观.强大的开源数据库监控系统,MySQL/Oracle/MongoDB/Redis一站式性能监控,让数据库监控更 ...
- eclipse 使 用Ctrl+鼠标左键进入mapper.xml文件的方法
在 >eclipse MarketPlace中下载>Mybatipse 插件安装重启即可完成
- Jenkins +git +python 进行持续集成进行接口测试(接口测试jenkins持续集成篇)
使用jenkins+git+python脚本进行持续集成的接口测试,在jenkins平台,利用插件等,把管理代码的git仓库的代码更新下来进行持续接口测试,python进行开发测试脚本,git进行远程 ...
- mysql数据库外部无法访问
有以下两种情况: 1.mysql未分配访问权限 格式:grant 权限 on 数据库名.表名 用户@登录主机 identified by "用户密码"; grant select, ...
- 二叉排序树、平衡二叉树、B树&B+树、红黑树的设计动机、缺陷与应用场景
之前面试时曾被问到"如果实现操作系统的线程调度应该采用什么数据结构?",因为我看过ucore的源码,知道ucore是采用斜堆的方式实现的,可以做到O(n)的插入.O(1)的查找.我 ...
- redux middleware 源码分析
原文链接 middleware 的由来 在业务中需要打印每一个 action 信息来调试,又或者希望 dispatch 或 reducer 拥有异步请求的功能.面对这些场景时,一个个修改 dispat ...
- centos7更改默认的python版本,安装python3.6.4
1.首先查看默认系统版本:显示为2.7.5 2.我们在root下创建一个python的文件夹用来存放我们下载的python安装包: 3.然后使用wget命令下载安装包: wget https://w ...
- 硬件能力与智能AI-Zoomla!逐浪CMS2 x3.9.2正式发布
北京时间2017年9月10日,领先的CMS网站内容管理系统与生产力软件研发厂商-Zoomla!逐浪CMS团队发布其年度重要产品:Zoomla!逐浪CMS2 x3.9.2,引领国内门户.移动.微商以及生 ...
- python资源推荐
一.文档教程 1. 廖雪峰python教程 廖老师的教程我相信不用说了吧,每个学习python的人或多或少都听说过他,对我的帮助很大. 2.python中文学习大本营 名字叫做python中文学习大本 ...