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加加速(javascript加速)
Aug 19 Javascript
JavaScript实现简单的时钟实例代码
Nov 23 Javascript
node.js中的buffer.slice方法使用说明
Dec 10 Javascript
JavaScript面向对象的实现方法小结
Apr 14 Javascript
JavaSciprt中处理字符串之sup()方法的使用教程
Jun 08 Javascript
AngularJS基础教程之简单介绍
Sep 27 Javascript
8 行 Node.js 代码实现代理服务器
Dec 05 Javascript
vuejs使用递归组件实现树形目录的方法
Sep 30 Javascript
微信小程序实现列表下拉刷新上拉加载
Jul 29 Javascript
解决Mac安装thrift因bison报错的问题
May 17 Javascript
JS中通过url动态获取图片大小的方法小结(两种方法)
Oct 31 Javascript
JS中封装axios来管控api的2种方式
Sep 11 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
常用星际术语索引(新手指南)
2020/03/04 星际争霸
php 伪造本地文件包含漏洞的代码
2011/11/03 PHP
查找mysql字段中固定字符串并替换的几个方法
2012/09/23 PHP
解析php中mysql_connect与mysql_pconncet的区别详解
2013/05/15 PHP
windows环境下php配置memcache的具体操作步骤
2013/06/09 PHP
laravel框架select2多选插件初始化默认选中项操作示例
2020/02/18 PHP
JavaScript 中的事件教程
2007/04/05 Javascript
用jQuery简化JavaScript开发分析
2009/02/19 Javascript
jquery 输入框数字限制插件
2009/11/10 Javascript
jQuery AnythingSlider滑动效果插件
2010/02/07 Javascript
Jquery插件写法笔记整理
2012/09/06 Javascript
Jquery 切换不同图片示例代码
2013/12/05 Javascript
ie8下修改input的type属性报错的解决方法
2014/09/16 Javascript
jquery实现标签上移、下移、置顶
2015/04/26 Javascript
jQuery中常用的遍历函数用法实例总结
2015/09/01 Javascript
javascript 内置对象及常见API详细介绍
2016/11/01 Javascript
Vue.JS入门教程之事件监听
2016/12/01 Javascript
javascript循环链表之约瑟夫环的实现方法
2017/01/16 Javascript
Javascript仿京东放大镜的效果
2017/03/01 Javascript
nodejs爬虫遇到的乱码问题汇总
2017/04/07 NodeJs
node.js中EJS 模板快速入门教程
2017/05/08 Javascript
jQuery常见的遍历DOM操作详解
2018/09/05 jQuery
electron + vue项目实现打印小票功能及实现代码
2018/11/25 Javascript
详解微信小程序开发之formId使用(模板消息)
2019/08/27 Javascript
Python操作Word批量生成文章的方法
2015/07/28 Python
Python3实现简单可学习的手写体识别(实例讲解)
2017/10/21 Python
python pygame实现五子棋小游戏
2020/10/26 Python
Django文件存储 默认存储系统解析
2019/08/02 Python
Linden Leaves官网:新西兰纯净护肤品
2020/12/20 全球购物
网络教育毕业生自我鉴定
2013/10/10 职场文书
在职人员函授期间自我评价分享
2013/11/08 职场文书
捐资助学感谢信
2015/01/21 职场文书
2016大一新生军训心得体会
2016/01/11 职场文书
nginx配置ssl实现https的方法示例
2021/03/31 Servers
解决golang在import自己的包报错的问题
2021/04/29 Golang
JavaScript高级程序设计之基本引用类型
2021/11/17 Javascript