【发布时间】:2020-06-15 21:24:20
【问题描述】:
我是响应式表单的新手。
这是我的代码,我在其中禁用了登录表单中的密码(用户名和密码)
this.loginForm.get('password').disable();
所以下次提交表单时,不会检查密码的验证器。
这很好,但是有没有办法在不禁用 HTML 元素的情况下禁用 FormControl?
我希望客户端能够输入密码,即使它没有被验证。
以下是客户端登录步骤,以了解我为什么想要这种行为:
客户端填写用户名
关于用户名模糊 - 验证表单(只是没有密码的用户名)并检查服务器是否用户存在并返回用户全名(例如 John Smith)。客户端按TAB键进入密码字段后,用户名字段模糊
当验证用户名的HTTP请求被发送到服务器时,应该允许客户端输入密码,即使密码
FormControl被禁用用户名有效(我们收到了服务器的响应)并且我们启用密码FormControl
this.loginForm.get('password').enable();客户端按下登录按钮验证用户名和密码并进行登录。
【问题讨论】:
-
你可以用 clearValidators() 代替 disable()。然后用 setValidator 代替 enable()。我想有一种更清洁的方法,但你所做的似乎有点微妙,所以这可能是你最好的选择。
-
我想过,但我想先问一下,也许我可能会错过一个选项
-
angular.io/api/forms/AbstractControl#clearValidators - 这里是 Reactive Forms 方法的有用列表
标签: angular angular-forms