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 限制输入脚本大全
Nov 03 Javascript
jquery下onpropertychange事件的绑定方法
Aug 01 Javascript
javascript 弹出层组件(升级版)
May 12 Javascript
javascript十六进制及二进制转化的方法
May 06 Javascript
JavaScript forEach()遍历函数使用及介绍
Jul 08 Javascript
JS函数的几种定义方式分析
Dec 17 Javascript
easyui window refresh 刷新两次的解决方法(推荐)
May 18 Javascript
原生js封装添加class,删除class的实例
Nov 06 Javascript
vue和webpack打包项目相对路径修改的方法
Jun 15 Javascript
JS localStorage存储对象,sessionStorage存储数组对象操作示例
Feb 15 Javascript
javascript设计模式 ? 解释器模式原理与用法实例分析
Apr 17 Javascript
javascript解析json格式的数据方法详解
Aug 07 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
西德产收音机
2021/03/01 无线电
codeigniter实现get分页的方法
2015/07/10 PHP
WordPress中注册菜单与调用菜单的方法详解
2015/12/18 PHP
php数组和链表的区别总结
2019/09/20 PHP
yii2.0框架数据库操作简单示例【添加,修改,删除,查询,打印等】
2020/04/13 PHP
分享几种好用的PHP自定义加密函数(可逆/不可逆)
2020/09/15 PHP
JQuery+DIV自定义滚动条样式的具体实现
2013/06/25 Javascript
alert和confirm功能介绍
2014/05/21 Javascript
JavaScript设置获取和设置属性的方法
2015/03/04 Javascript
Javascript代码实现仿实例化类
2015/04/03 Javascript
JavaScript forEach()遍历函数使用及介绍
2015/07/08 Javascript
jQuery实现可关闭固定于底(顶)部的工具条菜单效果
2015/11/06 Javascript
JS 滚动事件window.onscroll与position:fixed写兼容IE6的回到顶部组件
2016/10/10 Javascript
Bootstrap栅格系统学习笔记
2016/11/25 Javascript
js实现自动轮换选项卡
2017/01/13 Javascript
Angular2搜索和重置按钮过场动画
2017/05/24 Javascript
jQuery为某个div加入行样式
2017/06/09 jQuery
微信小程序页面生命周期详解
2018/01/31 Javascript
JavaScript面试技巧之数组的一些不low操作
2019/03/22 Javascript
vue自动路由-单页面项目(非build时构建)
2019/04/30 Javascript
你知道JavaScript Symbol类型怎么用吗
2020/01/08 Javascript
Eclipse + Python 的安装与配置流程
2013/03/05 Python
使用基于Python的Tornado框架的HTTP客户端的教程
2015/04/24 Python
Python进程间通信Queue实例解析
2018/01/25 Python
使用Python进行目录的对比方法
2018/11/01 Python
使用Python给头像戴上圣诞帽的图像操作过程解析
2019/09/20 Python
详解anaconda离线安装pytorchGPU版
2020/09/08 Python
迪卡侬中国官网:Decathlon中国
2020/08/10 全球购物
化学教师自荐信范文
2013/12/28 职场文书
人事部经理岗位职责
2014/03/07 职场文书
诚信承诺书模板
2014/05/26 职场文书
班级课外活动总结
2014/07/09 职场文书
企业趣味活动方案
2014/08/21 职场文书
教育实习指导教师评语
2014/12/31 职场文书
2015大一新生军训感言
2015/08/01 职场文书
Win10服务主机占用内存怎么办?Win10服务主机进程占用大量内存解决方法
2022/09/23 数码科技