javascript - 如何选择 Angular 6中的所有复选框?

标签 javascript angular typescript

如何选择 Angular 6 中的所有复选框?

我正在尝试制作一个带有复选框的表格,但我无法设置一个复选框来检查每页中所有复选框的真实性。 我想检查所有复选框,但它无法正常工作。

html

    <table id="myTable">
      <tbody >
            </tbody>
            <tbody >
              <tr >
                <th>
                  <input type=" checkbox" (change)="checkAll(this)">
        </th>
        <th>
          id
        </th>
        <th>
          fname
        </th>
       
        </tr>
      </tbody>
      <tbody *ngFor="let item of result" style="border:1px solid #D3D3D3">
        <td>
          <input type="checkbox" (change)="getCheckboxValues($event,item)" [checked]="check_true">
        </td>
        <td>
          {{ item.id }}
        </td>
        <td>
          {{ item.fname }}
        </td>
      </tbody>
    </table>

组件.ts

       getCheckboxValues(ev, data) {
    let obj = {
      "order": data
    }
    let selected_rows = [];

    if (ev.target.checked) {
      // Pushing the object into array
      this.newArray.push(obj);
    } else {
      let el = this.newArray.find(itm => itm.order === data);

      if (el)
        this.newArray.splice(this.newArray.indexOf(el), 1);
      if (this.newArray.length == 0) {
        this.newArray = [];
      }
    }

    if (this.newArray.lenght > 0) {
      for (let i in this.newArray) {
        selected_rows.push(this.newArray[i].order.bulkid);

        this.selected_rows = selected_rows;
      }
    }
  }

  checkAll(ele) {

    var checkboxes = document.getElementsByTagName('input');
    if (ele.checked) {
        for (var i = 0; i < checkboxes.length; i++) {
            if (checkboxes[i].type == 'checkbox') {
                checkboxes[i].checked = true;
            }
        }
    } else {
        for (var i = 0; i < checkboxes.length; i++) {
            if (checkboxes[i].type == 'checkbox') {
                checkboxes[i].checked = false;
            }
        }
    }
    console.log(ele)
}

我正在尝试制作一个带有复选框的表格,但我无法设置一个复选框来检查每页中所有复选框的真实性。 我想检查所有复选框,但它无法正常工作。

最佳答案

准备了一个小演示来展示如何使用 ngModel 指令来完成此操作。链接:https://stackblitz.com/edit/angular-lxjrdh

它使用Array.every来检查是否全部被检查。如果选中,它将重置所有其他选项。

关于javascript - 如何选择 Angular 6中的所有复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56102883/

相关文章:

javascript - 如何使用 ArcGIS Javascript API 旋转 map 图像

javascript - 使用 Chrome DevTools 将鼠标悬停在自定义元素上时,自定义元素不会被标记

angular - 更新 Angular 后无法在 Chrome 中调试 typescript 文件

javascript - 检查数组元素并查看它是否包含标志“我的循环不起作用”

Typescript + Vue + Element-ui

json - 如何从 karma 测试访问 json 文件

javascript - Google 如何检测到您的 Gmail 连接速度慢?

javascript - 如何使用 Angular 中的lodash按年份过滤rowData

angular - 如何禁用从一到二的垫子下拉选项?

javascript - 需要正则表达式帮助使用 Javascript 解析 mediawiki 模板