来自反应形式的验证无法正常工作

时间:2018-01-16 09:31:50

标签: javascript forms typescript angular5

我的被动表单出现了问题 - 我的repeatPassword没有刷新。如果我在"密码"标签,然后在" repeatPassword"再次在"密码"第二个没有标记为无效。

所以我决定做那样的事情:

if (this.form.get('password').value !== this.form.get('passwordRepeat').value) {
  this.form.get('passwordRepeat').setErrors({'invalid': true});
}

if (this.form.get('password').value === this.form.get('passwordRepeat').value &&
  !this.form.get('passwordRepeat').hasError) {
  this.form.get('passwordRepeat').setErrors({'invalid': null});
}

代码看起来很好,直到我尝试将无效设置为null - 反应形式将其视为错误,因此我无法提交并且ngif显示错误。

当我尝试接受规则时会发生同样的错误 - 取消选中复选框并不会将其标记为无效。

是否有任何选项可以强制验证器再次运行?

1 个答案:

答案 0 :(得分:0)

你试过设定吗? this.form.get('passwordRepeat').setErrors({'invalid': null}); 代替 this.form.get('passwordRepeat').setErrors({'invalid': false});

同样data: data.slice(0, 5)应该正常工作。

See this answer on SO解释了如何在组件中设置验证错误。