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 相关文章推荐
基于jquery的回到页面顶部按钮
Jun 27 Javascript
网页右侧悬浮滚动在线qq客服代码示例
Apr 28 Javascript
jquery访问ashx文件示例代码
Aug 11 Javascript
代码分析jQuery四种静态方法使用
Jul 23 Javascript
javascript实现简单的页面右下角提示信息框
Jul 31 Javascript
jQuery实现图片滑动效果
Mar 08 Javascript
利用yarn代替npm管理前端项目模块依赖的方法详解
Sep 04 Javascript
深入研究React中setState源码
Nov 17 Javascript
vue-cli 3.x 配置Axios(proxyTable)跨域代理方法
Sep 19 Javascript
微信小程序日历插件代码实例
Dec 04 Javascript
微信小程序 SOTER 生物认证DEMO 指纹识别功能
Dec 13 Javascript
ant design 日期格式化的实现
Oct 27 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
PHP二维数组的去重问题解析
2011/07/17 PHP
php实现可逆加密的方法
2015/08/11 PHP
46 个非常有用的 PHP 代码片段
2016/02/16 PHP
jQuery 点击图片跳转上一张或下一张功能的实现代码
2010/03/12 Javascript
jQuery+ajax实现鼠标单击修改内容的思路
2014/06/29 Javascript
jQuery.prop() 使用详解
2015/07/19 Javascript
详解js的延迟对象、跨域、模板引擎、弹出层、AJAX【附实例下载】
2016/12/19 Javascript
jQuery EasyUI window窗口使用实例代码
2017/12/25 jQuery
JavaScript中this关键字用法实例分析
2018/08/24 Javascript
js实现页面图片消除效果
2020/03/24 Javascript
vue项目配置同一局域网可使用ip访问的操作
2020/10/23 Javascript
nuxt 页面路由配置,主页轮播组件开发操作
2020/11/05 Javascript
JavaScript实现复选框全选和取消全选
2020/11/20 Javascript
[08:06]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant 选手采访
2021/03/11 DOTA
Python易忽视知识点小结
2015/05/25 Python
python查找指定具有相同内容文件的方法
2015/06/28 Python
Python中selenium实现文件上传所有方法整理总结
2017/04/01 Python
将python图片转为二进制文本的实例
2019/01/24 Python
centos6.5安装python3.7.1之后无法使用pip的解决方案
2019/02/14 Python
python读写csv文件的方法
2019/08/13 Python
python安装gdal的两种方法
2019/10/29 Python
Flask框架 CSRF 保护实现方法详解
2019/10/30 Python
python爬虫学习笔记之Beautifulsoup模块用法详解
2020/04/09 Python
如何以Winsows Service方式运行JupyterLab
2020/08/30 Python
详解Selenium 元素定位和WebDriver常用方法
2020/12/04 Python
Html5如何唤起百度地图App的方法
2019/01/27 HTML / CSS
jurlique茱莉蔻英国官网:澳洲天然护肤品
2018/08/03 全球购物
日本必酷网络直营店:Biccamera
2019/03/23 全球购物
L’urv官网:精品女性运动服品牌
2019/07/07 全球购物
高三生物教学反思
2014/01/25 职场文书
爱祖国演讲稿
2014/05/04 职场文书
导师工作推荐信范文
2014/05/17 职场文书
公司仓管员岗位职责
2015/04/01 职场文书
创业计划书之服装
2019/10/07 职场文书
Java生成读取条形码和二维码的简单示例
2021/07/09 Java/Android
Redis特殊数据类型HyperLogLog基数统计算法讲解
2022/06/01 Redis