javascript - 如何限制复选框在某些条件后进行选择

标签 javascript angular typescript angular5

我在 Angular 5 中使用 ngModel,这里是 Html

 <span *ngFor="let id of Ids">
  <input class="checkbox" type="checkbox" [(ngModel)]="strManyModel[id]"   (change)="setValue($event)" [value]="id">
 </span>

这是typeScript

setValue(e){
   if(selectedChkBox > 5){
    this.strManyModel[e.target.value] = false;// if check box more than 5 selected , unselect this one
  }
}

我想在选择 5 个复选框后限制复选框的选择。第一次点击一旦选择了5,我就可以限制为复选框来选择,但同时如果再次选择它就会选择。想要限制复选框在选中 5 次后才选中。一次最多可以从多个复选框中选择 5 个。仅当取消选中在选择第 5 种情况时选择的任何较旧的一项时,才可以选择其他一项。

最佳答案

创建额外的类属性,例如:

public maxElementCheckbox = 5;

然后使用一个函数:

public disableCheckbox(): boolean {
  return Ids.length >= this.maxElementCheckbox;
}

模板是:

<input class="checkbox" [disabled]="disableCheckbox()" type="checkbox" [(ngModel)]="strManyModel[id]" (change)="setValue($event, i)" [value]="id">

关于javascript - 如何限制复选框在某些条件后进行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49539998/

相关文章:

javascript - 使用 jquery 操作复选框和文本框

node.js - 使用worker_threads的 typescript 配置

带有 ES6 类的 JavaScript 模态

javascript - 在多个组件中调用一个组件。 Angular 4

angular - Mat 扩展面板扩展到其他 html 元素

javascript - 如何从外部 javascript 文件调用 Angular 组件中编写的函数?

typescript - vuetify 中的 "TypeError: Cannot read property ' $路由器 ' of null"

typescript - 如何将第三方 js 文件添加到 Webpack 包中?

javascript 在表单提交时设置 Cookie

javascript - 在 xhr responseText 上执行 jQuery 操作