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 相关文章推荐
点击进行复制的JS代码实例
Aug 23 Javascript
jQuery实现的漂亮表单效果代码
Aug 18 Javascript
javascript实现图片上传前台页面
Aug 18 Javascript
jQuery 1.9.1源码分析系列(十五)之动画处理
Dec 03 Javascript
javascript实现input file上传图片预览效果
Dec 31 Javascript
基于jquery实现百度新闻导航菜单滑动动画
Mar 15 Javascript
前端面试题及答案整理(二)
Aug 26 Javascript
jQGrid动态填充select下拉框的选项值(动态填充)
Nov 28 Javascript
vue.js组件之间传递数据的方法
Jul 10 Javascript
vue实现组件之间传值功能示例
Jul 13 Javascript
微信小程序实现用table显示数据库反馈的多条数据功能示例
May 07 Javascript
vue实力踩坑之push当前页无效
Apr 10 Vue.js
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
WordPress主题中添加文章列表页页码导航的PHP代码实例
2015/12/22 PHP
PHP类相关知识点实例总结
2016/09/28 PHP
SCP远程VPS快速搬家和WDCP升级php5.3安装memcached和eaccelerator教程
2017/07/27 PHP
PHP实现微信对账单处理
2018/10/01 PHP
PHP实现的策略模式示例
2019/03/20 PHP
在Ajax中使用Flash实现跨域数据读取的实现方法
2010/12/02 Javascript
自己动手制作jquery插件之自动添加删除行功能介绍
2011/10/14 Javascript
JS实现图片翻书效果示例代码
2013/09/09 Javascript
Javascript Objects详解
2014/09/04 Javascript
AngularJS学习笔记之ng-options指令
2015/06/16 Javascript
jQuery实现带玻璃流光质感的手风琴特效
2015/11/20 Javascript
jQuery插件实现表格隔行变色及鼠标滑过高亮显示效果代码
2016/02/25 Javascript
vue组件如何被其他项目引用
2017/04/13 Javascript
利用JS对iframe父子(内外)页面进行操作的方法教程
2017/06/15 Javascript
js 两个日期比较相差多少天的实例
2017/10/19 Javascript
vue的token刷新处理的方法
2018/07/17 Javascript
JavaScript如何判断input数据类型
2020/02/06 Javascript
Typescript3.9 常用新特性一览(推荐)
2020/05/14 Javascript
JavaScript实现答题评分功能页面
2020/06/24 Javascript
[01:07:11]Secret vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
高效测试用例组织算法pairwise之Python实现方法
2017/07/19 Python
python jieba分词并统计词频后输出结果到Excel和txt文档方法
2018/02/11 Python
pyQt4实现俄罗斯方块游戏
2018/06/26 Python
在django中实现页面倒数几秒后自动跳转的例子
2019/08/16 Python
python 列表、字典和集合的添加和删除操作
2019/12/16 Python
DjangoWeb使用Datatable进行后端分页的实现
2020/05/18 Python
无需压缩软件,用python帮你操作压缩包
2020/08/17 Python
HTML5应用之文件上传
2016/12/30 HTML / CSS
Eyeko美国:屡获殊荣的睫毛膏、眼线笔和眉妆
2018/07/05 全球购物
学生就业推荐信
2013/11/13 职场文书
骨干教师培训制度
2014/01/13 职场文书
终止劳动合同协议书
2014/04/14 职场文书
让世界充满爱演讲稿
2014/05/24 职场文书
机关保密承诺书
2014/06/03 职场文书
纪念一二九运动演讲稿
2014/09/16 职场文书
nginx常用配置conf的示例代码详解
2022/03/21 Servers