AngularJs验证重复密码的方法(两种)


Posted in Javascript onNovember 25, 2016

本文给大家分享angularjs验证重复密码的两种方法。具体方法详情如下所示:

第一种:

<label for="password">密码</label>
<input id="password" name="password" type="password" ng-model="user.password" required>
<label for="repassword">重复密码</label>
<input id="repassword" name="repassword" type="password" ng-model="repassword" required>
<span style="color:red" ng-show="user.password!=repassword">两次密码不一致</span>
<input type="submit" class="btn btn-primary btn-lg" value="SAVE" ng-disabled="submit(userForm)"/>
/*JS*/
app.controller("main",function($scope){
$scope.submit=function(ngFormController){
return ngFormController.$invalid; /*valid的取反*/
};
});

这种是单纯的判断两个ng-model所在的值是否相等,不等则显示出被ng-show指令控制的信息,等则隐藏。

但这种办法虽然很简单,但是却有个我认为比较严重的缺陷:这个“密码不一致”并没有影响到ngFormController的内部。也就是说,即使它两次密码不正确,最后的提交按钮还是可以点击的,因为ngFormController的$invalid 并没有认为两次密码不正确是一种错误。

参考一下AngularJS的指令ng-maxlength等,他们却可以引起$invalid 的检测,所以要解决上面的问题,我觉得办法之一就是创建一个用于验证两次密码是否一致的自定义指令。

/*指令创建*/
app.directive('equals',function(){
return{
require:'ngModel',
link:function(scope,elm,attrs,ngModelCtrl){
function validateEqual(myValue){
var valid = (myValue === scope.$eval(attrs.equals));
ngModelCtrl.$setValidity('equal',valid);
return valid ? myValue : undefined;
}
ngModelCtrl.$parsers.push(validateEqual);
ngModelCtrl.$formatters.push(validateEqual);
scope.$watch(attrs.equals,function(){
ngModelCtrl.$setViewValue(ngModelCtrl.$viewValue);
})
}
}
});
<!--html-->
<label for="password">密码</label>
<input id="password" name="password" type="password" ng-model="user.password" required>
<label for="repassword">重复密码</label>
<input id="repassword" name="repassword" type="password" ng-model="repassword" <!--注意这里将要使用我自定义的指令-->equals="user.password" required>
<span style="color:red" ng-show="user.password!=repassword">两次密码不一致</span>
<input type="submit" class="btn btn-primary btn-lg" value="SAVE" ng-disabled="submit(userForm)"/>

这样,加上第一个办法的判断,就可以完美地验证重复密码了。

以上所述是小编给大家介绍的AngularJs验证重复密码的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js 全兼容可高亮二级缓冲折叠菜单
Jun 04 Javascript
javascript中类的定义及其方式(《javascript高级程序设计》学习笔记)
Jul 04 Javascript
微信JS接口汇总及使用详解
Jan 09 Javascript
JQuery中Text方法用法实例分析
May 18 Javascript
轻量级javascript 框架Backbone使用指南
Jul 24 Javascript
javascript实现dom元素可拖动
Mar 21 Javascript
第十章之巨幕页头缩略图与警告框组件
Apr 25 Javascript
JS高级运动实例分析
Dec 20 Javascript
JS实现标签滚动切换效果
Dec 25 Javascript
layui使用label标签的方法
Sep 14 Javascript
vue滚动插件better-scroll使用详解
Oct 18 Javascript
node事件循环和process模块实例分析
Feb 14 Javascript
jQuery实现发送验证码并60秒倒计时功能
Nov 25 #Javascript
js document.getElementsByClassName的使用介绍与自定义函数
Nov 25 #Javascript
微信JS-SDK自定义分享功能实例详解【分享给朋友/分享到朋友圈】
Nov 25 #Javascript
JS实现的图片预览插件与用法示例【不上传图片】
Nov 25 #Javascript
微信小程序开发之实现选项卡(窗口顶部TabBar)页面切换
Nov 25 #Javascript
Javascript基于jQuery UI实现选中区域拖拽效果
Nov 25 #Javascript
bootstrap-datetimepicker实现只显示到日期的方法
Nov 25 #Javascript
You might like
PHP新手上路(八)
2006/10/09 PHP
php对关联数组循环遍历的实现方法
2015/03/13 PHP
php中实现可以返回多个值的函数实例
2015/03/21 PHP
PHP简单实现生成txt文件到指定目录的方法
2016/04/25 PHP
PHP使用PDO访问oracle数据库的步骤详解
2017/09/29 PHP
thinkPHP5实现的查询数据库并返回json数据实例
2017/10/23 PHP
关于flash遮盖div浮动层的解决方法
2010/07/17 Javascript
解决Extjs上传图片无法预览的解决方法
2012/03/22 Javascript
For循环中分号隔开的3部分的执行顺序探讨
2014/05/27 Javascript
jQuery中prependTo()方法用法实例
2015/01/08 Javascript
jQuery+PHP实现动态数字展示特效
2015/03/14 Javascript
JavaScript如何自定义trim方法
2015/07/28 Javascript
Bootstrap嵌入jqGrid,使你的table牛逼起来
2016/05/05 Javascript
JavaScript实现in-place思想的快速排序方法
2016/08/07 Javascript
Javascript中 带名 匿名 箭头函数的重要区别(推荐)
2017/01/29 Javascript
JS中的多态实例详解
2017/10/15 Javascript
laravel5.3 vue 实现收藏夹功能实例详解
2018/01/21 Javascript
JavaScript简单实现关键字文本搜索高亮显示功能示例
2018/07/25 Javascript
vue组件实践之可搜索下拉框功能
2018/11/25 Javascript
vue项目每30秒刷新1次接口的实现方法
2018/12/04 Javascript
小程序实现分类页
2019/07/12 Javascript
解决layer.prompt无效的问题
2019/09/24 Javascript
Layui数据表格判断编辑输入的值,是否为我需要的类型详解
2019/10/26 Javascript
微信小程序实现Swiper轮播图效果
2019/11/22 Javascript
使用JS来动态操作css的几种方法
2019/12/18 Javascript
ES6实现图片切换特效代码
2020/01/14 Javascript
JS面向对象之多选框实现
2020/01/17 Javascript
解决vue无法侦听数组及对象属性的变化问题
2020/07/17 Javascript
python基础知识小结之集合
2015/11/25 Python
Python字符串特性及常用字符串方法的简单笔记
2016/01/04 Python
Python多进程方式抓取基金网站内容的方法分析
2019/06/03 Python
解决django 向mysql中写入中文字符出错的问题
2020/05/18 Python
大四毕业生学习总结的自我评价
2013/10/31 职场文书
服装设计行业个人的自我评价
2013/12/20 职场文书
2014物价局民主生活会对照检查材料思想汇报
2014/09/24 职场文书
2014年安全管理工作总结
2014/12/01 职场文书