angular - 如何在 Angular 6 中切换输入字段?
问题描述
我想动态切换(启用和禁用)一个或另一个<input>
。
期望的行为:当用户选择Yes
时,第一个<input>
被启用但第二个<input>
被禁用。当用户单击No
时,反之亦然。
这是我尝试过的https://stackblitz.com/edit/angular-reactive-forms-pfacix
正确的 Value Selected {{}}
日志true
和false
. 所以我知道 100% 布尔值被分配。
但由于某种原因,attr.disabled
它不会切换。它仅在我第一次单击时才有效。为什么 ?? ? 我尝试使用disabled
disable
attr.disable
我尝试了所有变体
解决方案
反应式表单的美妙之处在于您可以非常轻松地捕获任何输入元素的值更改事件,同时您可以更改它们的值/状态。因此,这是解决您的问题的方法。
订阅yesNoToggle
字段的值更改事件并根据值启用禁用输入字段
subscribeYesNoToggle() {
this.SignupForm.get('yesNoToggle').valueChanges.subscribe(data => {
if (data === 'false') {
this.SignupForm.get('mustToggle1').disable();
this.SignupForm.get('mustToggle2').enable();
} else{
this.SignupForm.get('mustToggle2').disable();
this.SignupForm.get('mustToggle1').enable();
}
})
}
这是关于stackblitz的完整解决方案。
推荐阅读
- node.js - 需要明确提供方言
- java - 从 Aspose.slide java 替换图像时出错
- oracle - 如何在一个选择查询中使用 Oracle 和 PostgreSQL 查询
- airflow - ServiceNow 与 Airflow 的集成
- mysql - 想按顺序使用 case 语句
- python - 如何使用增强设置训练,但确保未增强的实际图像也得到训练?
- ssl - 以二进制模式与 Spark Thrift 服务器的通信是否安全传输?
- options - 如何更改 pyomo 中的 couenne 求解器选项?
- android - 模拟器:意外的功能列表:MultiDisplay VulkanNullOptionalStrings YUV420888toNV21 YUVCache
- qt - Qt QML新项目创建错误(只能看到“.pro”文件)