【问题标题】:How to compare two controls inside custom validator?如何比较自定义验证器中的两个控件?
【发布时间】:2017-01-24 16:04:18
【问题描述】:

我需要获取用户名控件和密码控件的值来比较它们。

这是我的自定义验证器

import { FormControl } from '@angular/forms';

export class PasswordValidator {
    static isNotEqual(control: FormControl) {
        if (control.get('username').touched && control.get('password').touched) {
            if (control.get('username').value != control.get('password').value) {
                return { isNotEqual: true }
            } else {
                return { isNotEqual: false }
            }
        } else {

        }
    }
}

这里的问题是我无法获取这两个控件的值。有人帮忙吗?

【问题讨论】:

    标签: angular angular2-forms


    【解决方案1】:

    您可以通过父级访问第二个控件:

        isEqual(c: FormControl): any {
            if (c.parent) {
                if (c.parent.value['username'] !== c.value) {
                    return {isNotEqual: true}
                } else {
                    return {isNotEqual: false}
                }
            }
    
            return null;
        }
    

    您必须将此验证器添加到密码表单控件中,或者相反。

    【讨论】:

      猜你喜欢
      • 2011-12-14
      • 2017-12-24
      • 1970-01-01
      • 1970-01-01
      • 2011-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-07
      相关资源
      最近更新 更多