angular表单密码验证自定义指令

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;
                })
            }
        }
    }
})

model:https://tianyouh.github.io/angularPasswordConfirm/

转载于:https://www.cnblogs.com/huangjinliang/p/5990828.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值