首页 > 解决方案 > 选中 Angular/JavaScript 中的所有复选框

问题描述

我想选择 Angular/JavaScript 中的所有复选框,我尝试了一些不起作用的方法。

全选的校验码是这个:

<div class="form-groupCheckbox">
    <input class="checkbox" name="confirm" id="confirm1" type="checkbox">
    <label for="confirm1">  Selecionar todos  </label>
  </div>

当我单击“全选”框时,我想在此处选中所有这些框

      <input class="checkbox" name="confirm" id="confirm1" type="checkbox">
      <label for="confirm1"> xx </label>


      <input class="checkbox" name="confirm" id="confirm2" type="checkbox">
      <label for="confirm1"> ff </label>

      <input class="checkbox" name="confirm" id="confirm3" type="checkbox">
      <label for="confirm1">rr </label>

标签: javascriptangularangular-cli

解决方案


您可以做的是将每个复选框链接到某个变量,然后true在用户选择时将它们全部生成select-all checkbox

HTML 文件将如下所示:

<div class="form-groupCheckbox">
    <input class="checkbox" name="confirm" id="confirm1" type="checkbox" #selectAll (change)="onSelectAllChange(selectAll.value)">
    <label for="confirm1">  Selecionar todos  </label>
</div>

<ng-container *ngFor="let checkbox of checkboxes">
  <input class="checkbox" name="confirm" [(ngModel)]="checkbox.value" id="{{checkbox.id}}" type="checkbox">
  <label for="confirm1"> {{checkbox.label}} </label>
</ng-container>

TypeScript 文件将如下所示:

public checkboxes = [
    {
      value: false,
      id: 'checkbox_1',
      lablel: 'Label 1'
    },
    {
      value: false,
      id: 'checkbox_2',
      lablel: 'Label 2'
    },
    {
      value: false,
      id: 'checkbox_3',
      lablel: 'Label 3'
    }
  ];

  onSelectAllChange(value: boolean) {
    checkboxes.forEach((checkbox: any) => {
      if (value) {
        checkbox.value = true;
      } else {
        checkbox.value = false;
      }
    });
  }

推荐阅读