angularjs 表单密码验证自定义指令实现代码


Posted in Javascript onOctober 27, 2016

html代码

<form name="form">
    <input type="password" name="password" ng-model="password" required placeholder="请输入密码">
    <input type="password" name="passwordConfirm" ng-model="passwordConfirm" equal-to="password" placeholder="请再次输入密码">
    <span ng-show="form.passwordConfirm.$error.equalTo">两次密码不一致</span>
  </form>

js

angular.module("Valid",[])

.directive("equalTo", function () {
  return {
    require: "ngModel",
    link: function (scope, ele, attrs, ctrl) {

      console.log(scope);//打印当前作用域
      console.log(attrs);//打印当前标签属性列表
      console.log(ctrl);//打印当前ctrl

      var target = attrs["equalTo"];//获取自定义指令属性键值

      if (target) {//判断键是否存在
        scope.$watch(target, function () {//存在启动监听其值
          ctrl.$validate()//每次改变手动调用验证
        }) 

        // 获取当前模型控制器的父控制器FormController
        var targetCtrl = ctrl.$$parentForm[target];//获取指定模型控制器
        console.log(targetCtrl)

        ctrl.$validators.equalTo = function (modelValue, viewVale) {//自定义验证器内容
          
          var targetValue = targetCtrl.$viewValue;//获取password的输入值

          return targetValue == viewVale;//是否等于passwordConfirm的值
        }

        ctrl.$formatters.push(function (value) {
          console.log("正在进行数据格式化的值:",value)
          return value;
        })

        ctrl.$parsers.push(function (value) {
          console.log("正在进行数据转换的值:",value)
          return value;
        })
      }
    }
  }
})

演示地址:https://tianyouh.github.io/angularPasswordConfirm/

Javascript 相关文章推荐
javascript prototype原型操作笔记
Dec 07 Javascript
非常有用的40款jQuery 插件推荐(系列二)
Dec 25 Javascript
JS不能跨域借助jquery获取IP地址的方法
Aug 20 Javascript
node.js操作mysql(增删改查)
Jul 24 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记6)
Dec 20 Javascript
浅谈DOCTYPE对$(window).height()取值的影响
Jul 21 Javascript
bootstrap select插件封装成Vue2.0组件
Apr 17 Javascript
Vue2.x中的父子组件相互通信的实现方法
May 02 Javascript
详解webpack + react + react-router 如何实现懒加载
Nov 20 Javascript
利用Javascript实现一套自定义事件机制
Dec 14 Javascript
vuejs实现递归树型菜单组件
Jan 13 Javascript
Vue实现搜索 和新闻列表功能简单范例
Mar 16 Javascript
getElementById().innerHTML与getElementById().value的区别
Oct 27 #Javascript
不使用script导入js文件的几种方法
Oct 27 #Javascript
JSON 必知必会 观后记
Oct 27 #Javascript
使用JSON作为函数的参数的优缺点
Oct 27 #Javascript
Javascript 获取鼠标当前的位置实现方法
Oct 27 #Javascript
JavaScript实现使用Canvas绘制图形的基本教程
Oct 27 #Javascript
js 实现一些跨浏览器的事件方法详解及实例
Oct 27 #Javascript
You might like
snoopy PHP版的网络客户端提供本地下载
2008/04/15 PHP
php 对输入信息的进行安全过滤的函数代码
2012/06/29 PHP
php中smarty模板条件判断用法实例
2015/06/11 PHP
php实现无限级分类(递归方法)
2015/08/06 PHP
[原创]PHP正则删除html代码中a标签并保留标签内容的方法
2017/05/23 PHP
PHP 并发场景的几种解决方案
2019/06/14 PHP
javascript 词法作用域和闭包分析说明
2010/08/12 Javascript
JS JSON对象转为字符串的简单实现方法
2013/11/18 Javascript
javascript面向对象之对象的深入理解
2015/01/13 Javascript
jquery实现多条件筛选特效代码分享
2015/08/28 Javascript
javascript DIV实现跟随鼠标移动
2020/03/19 Javascript
JavaScript驾驭网页-DOM
2016/03/24 Javascript
JS伪继承prototype实现方法示例
2018/06/20 Javascript
vue3.0 CLI - 1 - npm 安装与初始化的入门教程
2018/09/14 Javascript
vue-cli —— 如何局部修改Element样式
2020/10/22 Javascript
[04:27]DOTA2官方论坛水友赛集锦
2013/09/16 DOTA
[01:00:14]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第三场
2018/04/10 DOTA
pycharm 使用心得(六)进行简单的数据库管理
2014/06/06 Python
关于python的bottle框架跨域请求报错问题的处理方法
2017/03/19 Python
Face++ API实现手势识别系统设计
2018/11/21 Python
Form表单及django的form表单的补充
2019/07/25 Python
基于python操作ES实例详解
2019/11/16 Python
ansible动态Inventory主机清单配置遇到的坑
2020/01/19 Python
python切割图片的示例
2020/11/12 Python
python 装饰器的基本使用
2021/01/13 Python
HTML5重塑Web世界它将如何改变互联网
2012/12/17 HTML / CSS
html5中地理位置定位api接口开发应用小结
2013/01/04 HTML / CSS
美国山地自行车、露营、户外装备和服装购物网站:Aventuron
2018/05/05 全球购物
办公室主任职责范文
2013/11/08 职场文书
二年级评语大全
2014/04/23 职场文书
北京申奥口号
2014/06/19 职场文书
领导班子整改措施
2014/10/24 职场文书
2014年学校总务处工作总结
2014/12/08 职场文书
2015年度高中教师工作总结
2015/05/26 职场文书
教育教学读书笔记
2015/07/02 职场文书
Python实现Matplotlib,Seaborn动态数据图
2022/05/06 Python