繁体   English   中英

如何取消选中 Angular 中 forloop 中的特定复选框

[英]How to uncheck the particular check box in forloop in Angular

<div id="collapsefive">
  <ul class="listing-jobs">
    <li *ngFor="let jobData of companyFilter | filter:searchText">
      <span class="radio">
        <label><input type="checkbox" id="jobData.compnyname" [checked]="check(checkFilterComp,jobData.compnyname)"
            (click)="searchByFilter(jobData.compnyname,$event,'compnyname')" />
          {{jobData.compnyname}}</label>
      </span>

    </li>
  </ul>
</div>

ts文件

clearFilter(fieldNm) {
  if (fieldNm == 'compnyname') {
        ** $('#collapsefive').find('input[type=checkbox]:checked').removeAttr('checked');**

      this.searchText = '';
    $('#compnynameClear').hide();
    $('#compnynameClearDot').hide();
    this.multiCompanyFilter = [];
  }
}

在 ts 文件中,我删除了选中但它不起作用。

这不是处理已检查 state 的 angular 方式。

$('#collapsefive').find('input[type=checkbox]:checked').removeAttr('checked');

尝试使用 angular 提供的表单元素。

https://stackoverflow.com/a/41307884/1418760

如果你真的想使用 jQuery 方式,你可以使用

$('#collapsefive').find('input[type=checkbox]:checked').prop('checked', false);

或者

$('#collapsefive').find('input[type=checkbox]:checked').attr('checked', false);

但是,由于您的复选框是动态的并且基于check(checkFilterComp,jobData.compnyname)被选中/取消选中

clear filter的情况下,您需要有一个标志来停止执行此方法,或者以最佳方式仅在列表本身中相应地更改值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM