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 相关文章推荐
自定义ExtJS控件之下拉树和下拉表格附源码
Oct 15 Javascript
jquery中EasyUI使用技巧小结
Feb 10 Javascript
原生js封装的一些jquery方法(详解)
Sep 20 Javascript
ajax异步请求详解
Jan 06 Javascript
js面向对象编程总结
Feb 16 Javascript
tween.js缓动补间动画算法示例
Feb 13 Javascript
使用ngrok+express解决本地环境中微信接口调试问题
Feb 26 Javascript
JS实现深度优先搜索求解两点间最短路径
Jan 17 Javascript
详解在Angular4中使用ng2-baidu-map的方法
Jun 19 Javascript
uni-app如何实现增量更新功能
Jan 03 Javascript
vue实现编辑器键盘抬起时内容跟随光标距顶位置向上滚动效果
May 28 Javascript
Vue循环遍历选项赋值到对应控件的实现方法
Jun 22 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
虹吸壶煮咖啡26个注意事项
2021/03/03 冲泡冲煮
php+oracle 分页类
2006/10/09 PHP
Mysql中limit的用法方法详解与注意事项
2008/04/19 PHP
Zend Framework实现留言本分页功能(附demo源码下载)
2016/03/22 PHP
php封装的表单验证类完整实例
2016/10/19 PHP
使用隐藏的new来创建对象
2011/03/29 Javascript
html中的input标签的checked属性jquery判断代码
2012/09/19 Javascript
纯css+js写的一个简单的tab标签页带样式
2014/01/28 Javascript
jquery修改网页背景颜色通过css方法实现
2014/06/06 Javascript
jQuery实现单击和鼠标感应事件
2015/02/01 Javascript
node.js使用cluster实现多进程
2016/03/17 Javascript
easyui form validate总是返回false的原因及解决方法
2016/11/07 Javascript
Vue.2.0.5实现Class 与 Style 绑定的实例
2017/06/20 Javascript
Node.js 使用流实现读写同步边读边写功能
2017/09/11 Javascript
解决vue无法设置滚动位置的问题
2018/10/07 Javascript
微信小程序实现多选功能
2018/11/04 Javascript
Makefile/cmake/node-gyp中区分判断不同平台的方法
2018/12/18 Javascript
记录一次完整的react hooks实践
2019/03/11 Javascript
vue实现一个6个输入框的验证码输入组件功能的实例代码
2020/06/29 Javascript
python实现对一个完整url进行分割的方法
2015/04/29 Python
Python读写文件方法总结
2015/06/09 Python
对Python中DataFrame选择某列值为XX的行实例详解
2019/01/29 Python
Python3 A*寻路算法实现方式
2019/12/24 Python
python3+selenium获取页面加载的所有静态资源文件链接操作
2020/05/04 Python
CSS3 实现雷达扫描图的示例代码
2020/09/21 HTML / CSS
加拿大健康、婴儿和美容产品在线购物:Well.ca
2016/11/30 全球购物
学术诚信承诺书
2014/05/26 职场文书
传承焦裕禄精神思想汇报2014
2014/09/10 职场文书
派出所班子党的群众路线对照检查材料思想汇报
2014/10/01 职场文书
校园新闻广播稿5篇
2014/10/10 职场文书
见习报告格式要求
2014/11/04 职场文书
社区元宵节活动总结
2015/02/06 职场文书
暑期社会实践个人总结
2015/03/06 职场文书
楚门的世界观后感
2015/06/03 职场文书
2016年圣诞节活动总结范文
2016/04/01 职场文书
CSS3新特性详解(五):多列columns column-count和flex布局
2021/04/30 HTML / CSS