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 相关文章推荐
jQuery提交表单ajax查询实例代码
Oct 07 Javascript
jquery查找父元素、子元素(个人经验总结)
Apr 09 Javascript
一个非常全面的javascript URL解析函数和分段URL解析方法
Apr 12 Javascript
javascript实现类似超链接的效果
Dec 26 Javascript
jQuery中has()方法用法实例
Jan 06 Javascript
JavaScript事件委托用法分析
Jan 24 Javascript
js带缩略图的图片轮播效果代码分享
Sep 14 Javascript
jQuery动画效果实现图片无缝连续滚动
Jan 12 Javascript
ECMAScript6 新特性范例大全
Mar 24 Javascript
vue+axios+element ui 实现全局loading加载示例
Sep 11 Javascript
vue.js基于v-for实现批量渲染 Json数组对象列表数据示例
Aug 03 Javascript
vue中上传视频或图片或图片和文字一起到后端的解决方法
Dec 01 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实现文件上传与下载实例与总结
2016/03/13 PHP
thinkPHP5.0框架API优化后的友好性分析
2017/03/17 PHP
根据分辨率不同,调用不同的css文件
2006/07/07 Javascript
jQuery的显示和隐藏方法与css隐藏的样式对比
2013/10/18 Javascript
jquery队列函数用法实例
2014/12/16 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(二)之数据支持json字符串、list集合
2016/08/11 Javascript
原生JS实现-星级评分系统的简单实例
2016/08/21 Javascript
关于前后端json数据的发送与接收详解
2017/07/30 Javascript
基于zTree树形菜单的使用实例
2017/12/25 Javascript
实例学习JavaScript读取和写入cookie
2018/01/29 Javascript
vue+node实现图片上传及预览的示例方法
2018/11/22 Javascript
JS实现的自定义map方法示例
2019/05/17 Javascript
ant-design-vue 快速避坑指南(推荐)
2020/01/21 Javascript
详解JavaScript中的数据类型,以及检测数据类型的方法
2020/09/17 Javascript
React Ant Design树形表格的复杂增删改操作
2020/11/02 Javascript
[00:39]DOTA2上海特级锦标赛 Liquid战队宣传片
2016/03/04 DOTA
python3序列化与反序列化用法实例
2015/05/26 Python
python搭建微信公众平台
2016/02/09 Python
Django中Model的使用方法教程
2018/03/07 Python
Pycharm以root权限运行脚本的方法
2019/01/19 Python
Python和Go语言的区别总结
2019/02/20 Python
python实现递归查找某个路径下所有文件中的中文字符
2019/08/31 Python
节日快乐! Python画一棵圣诞树送给你
2019/12/24 Python
scrapy-redis分布式爬虫的搭建过程(理论篇)
2020/09/29 Python
Nike挪威官网:Nike.com (NO)
2018/11/26 全球购物
商务英语广告词大全
2014/03/18 职场文书
员工安全责任书范本
2014/07/24 职场文书
新闻学专业职业生涯规划范文:我的人生我做主
2014/09/12 职场文书
毕业生对母校寄语
2015/02/26 职场文书
卫生院艾滋病宣传活动总结
2015/05/09 职场文书
2015年安全生产管理工作总结
2015/05/25 职场文书
HR必备:超全面的薪酬待遇管理方案!
2019/07/12 职场文书
MySql新手入门的基本操作汇总
2021/05/13 MySQL
Mysql 设置boolean类型的操作
2021/06/04 MySQL
Python深度学习之实现卷积神经网络
2021/06/05 Python
python在package下继续嵌套一个package
2022/04/14 Python