如何将 ng-required 与 $touched 一起使用?

How to use ng-required with $touched?

如果另一个输入发生变化,我会尝试根据需要设置一个输入。如果密码已更改,我的需求是要求确认密码。

我在输入确认密码时使用它,但从来不需要它:

ng-required="userForm.Password.$touched"

CodePen

另一个问题:有没有办法删除 ng-Model="user.ConfirmPassword"?因为我的模型不需要 ConfirmPassword "user",不是吗?

您应该使用 name 属性 而不是 id

此外,这不是有效的语法:

<span class="error" ng-show="userForm.Password.$touched  userForm.Password.$error.required">Password is required</span>

应该是:

<span class="error" ng-show="userForm.Password.$touched">Password is required</span>

那么它就可以正常工作,只要Password是输入元素的名称,而不是ID。

您没有使用 name 属性,因此您不能使用 Password 和 ConfirmPassword 的表单属性...
也将 AND 更改为 OR..

这里是更新的代码

<form name="userForm" ng-controller="userController">
  <label for="Password">Set a password:</label>
  <input type="password" name="Password" id="Password" ng-model="user.Password" required />
  <span class="error" ng-show="userForm.Password.$touched">Password is required</span>
  <br />
  <label for="ConfirmPassword">Confirm the password:</label>
  <input name="ConfirmPassword" type="password" id="ConfirmPassword" ng-model="user.ConfirmPassword" ng-required="userForm.Password.$touched" />
  <span class="error" ng-show="userForm.Password.$touched || userForm.ConfirmPassword.$touched || userForm.ConfirmPassword.$error.required">Confirm password is required</span>
  <br/>
  <span>Password: {{user.Password}}</span>
  <br/>
  <span>Conform Password: {{user.ConfirmPassword}}</span>
</form>