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 相关文章推荐
DEFER怎么用?
Jul 01 Javascript
javascript 对象定义方法 简单易学
Mar 22 Javascript
javascript模拟地球旋转效果代码实例
Dec 02 Javascript
jQuery性能优化技巧分析
Feb 20 Javascript
zTree获取当前节点的下一级子节点数实例
Sep 05 Javascript
微信小程序开发之好友列表字母列表跳转对应位置
Sep 26 Javascript
Vue2.x中利用@font-size引入字体图标报错的解决方法
Sep 28 Javascript
微信小程序实现的点击按钮 弹出底部上拉菜单功能示例
Dec 20 Javascript
微信小程序使用wxParse解析html的方法示例
Jan 17 Javascript
Vue封装的组件全局注册并引用
Jul 24 Javascript
js实现无缝轮播图效果
Mar 09 Javascript
Vue操作Storage本地化存储
Apr 29 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
PHP 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
2012/12/07 PHP
PHP中redis的用法深入解析
2014/02/20 PHP
Laravel框架集成UEditor编辑器的方法图文与实例详解
2019/04/17 PHP
laravel接管Dingo-api和默认的错误处理方式
2019/10/25 PHP
php中array_fill函数的实例用法
2021/03/02 PHP
JavaScript中for..in循环陷阱介绍
2013/11/12 Javascript
Node.js实现Excel转JSON
2015/04/24 Javascript
js给selected添加options的方法
2015/05/06 Javascript
js模拟淘宝网的多级选择菜单实现方法
2015/08/18 Javascript
JavaScript中Window对象的属性及事件
2015/12/25 Javascript
javascript html5 canvas实现可拖动省份的中国地图
2016/03/11 Javascript
AngularJS中实现用户访问的身份认证和表单验证功能
2016/04/21 Javascript
微信小程序 摇一摇抽奖简单实例实现代码
2017/01/09 Javascript
angularJS深拷贝详解
2017/03/23 Javascript
JavaScript简单计算人的年龄示例
2017/04/15 Javascript
详解Node.js开发中的express-session
2017/05/19 Javascript
原生js 封装get ,post, delete 请求的实例
2017/08/11 Javascript
Vue自定义指令写法与个人理解
2019/02/09 Javascript
详解vuex数据传输的两种方式及this.$store undefined的解决办法
2019/08/26 Javascript
JavaScript中的this/call/apply/bind的使用及区别
2020/03/06 Javascript
基于原生JS封装的Modal对话框插件的示例代码
2020/09/09 Javascript
vue使用svg文件补充-svg放大缩小操作(使用d3.js)
2020/09/22 Javascript
Python实现的插入排序算法原理与用法实例分析
2017/11/22 Python
python实现基于SVM手写数字识别功能
2020/05/27 Python
python 计算平均平方误差(MSE)的实例
2019/06/29 Python
python Opencv计算图像相似度过程解析
2019/12/03 Python
Python文本处理简单易懂方法解析
2019/12/19 Python
Pyinstaller打包Scrapy项目的实现步骤
2020/09/22 Python
python热力图实现简单方法
2021/01/29 Python
美国香薰蜡烛品牌:PADDYWAX
2018/10/06 全球购物
电话销售经理岗位职责
2013/12/07 职场文书
《台湾的蝴蝶谷》教学反思
2014/02/20 职场文书
建筑工程催款函
2015/06/24 职场文书
谁动了我的奶酪读书笔记
2015/06/30 职场文书
酒店员工管理制度
2015/08/05 职场文书
Linux中sftp常用命令整理
2022/06/28 Servers