具有切换值的多个复选框

时间:2019-05-02 06:46:39

标签: angular typescript

我的要求是有一个带有某些条件的三个复选框,然后单击该复选框。

例如,考虑三个复选框1、2和3

如果我在1复选框上选中,则需要启用其他两个复选框(2、3)。

如果我更改为false(1),则需要禁用其他两个复选框(2,3)。

另一种情况是,如果我取消选中复选框(1),则其他两个复选框的值都需要重置为false(2、3),并且需要禁用。

我已经满足上述条件。但是,问题是ngmodel中的值未更新。

下面的示例代码

 <td>
              <div class="col-lg-12" id="radiobutton">
                  <input #EDIsRead=ngModel [(ngModel)]="GetRoleIsRead.EDIsRead" name="GetRoleIsRead.EDIsRead" class="form-check-input col-sm-2"
                  type="checkbox" id="EDIsRead" style="padding-left: 0px !important;" (change)="CheckeventforRead('ED')">
              </div>
            </td>
            <td>
              <div class="col-lg-12" id="radiobutton">
                  <input #EDIsModifyLOB=ngModel [(ngModel)]="GetRoleIsModifyLOB.EDIsModifyLOB" name="GetRoleIsModifyLOB.EDIsModifyLOB" class="form-check-input col-sm-2"
                  type="checkbox" id="EDIsModifyLOB" style="padding-left: 0px !important;" (change)="CheckeventforModifyLOB('ED','0')">
              </div>
            </td>
            <td>
              <div class="col-lg-12" id="radiobutton">
                  <input #EDIsModifyAll=ngModel [(ngModel)]="GetRoleIsModifyAll.EDIsModifyAll" name="GetRoleIsModifyAll.EDIsModifyAll" class="form-check-input col-sm-2"
                  type="checkbox" id="EDIsModifyAll" style="padding-left: 0px !important;" (change)="CheckeventforModifyAll('ED','0')">
              </div>
            </td>`

输入通过true true false

因此,这里我将true传递给1,将true传递给2,并将false传递给3,这是两种方式的绑定。

如果我将3更改为true,则2未被选中,但值没有改变

这是我的示例json。

之前:

{"GetRoleIsRead.EDIsRead": true, "GetRoleIsModifyLOB.EDIsModifyLOB": false, "GetRoleIsModifyAll.EDIsModifyAll": true }

检查2ed后:

{"GetRoleIsRead.EDIsRead": true, "GetRoleIsModifyLOB.EDIsModifyLOB": true, "GetRoleIsModifyAll.EDIsModifyAll": true }

实际输出应为:

{"GetRoleIsRead.EDIsRead": true, "GetRoleIsModifyLOB.EDIsModifyLOB": true, "GetRoleIsModifyAll.EDIsModifyAll": false}

1 个答案:

答案 0 :(得分:1)

希望我能理解你的意思, 如果需要的话,我用stackblitz作了一个例子,我会做进一步解释。

简短说明-我使用[disabled]属性来启用/禁用输入,然后我使用(change)事件来清除变量的值。