0

チェックボックス付きのアイテムのテーブルがあり、ユーザーが 15 個のアイテムをチェックしたときにそれらを無効にしたいと考えています。

私のコードは次のとおりです。

  <mdc-checkbox class="checkbox-primary" [(ngModel)]="item.isChecked"
      (change)="$event ? selection.toggle(row) : null" (click)="$event.stopPropagation()"
      (change)="onChecked(item)" [disabled]="itemList.length > 15">
    </mdc-checkbox>

動作しますが、すべて無効になるため、既にチェックされているもののチェックを外して別のものをチェックすることはできません。

問題は、ユーザーが15番目のチェックボックスをチェックしたときに、チェックされていないチェックボックスのみを無効にする方法です。

4

1 に答える 1

0

少しの js を使用して、3 つ以上のチェックボックスがチェックされるのを防ぎます。それはあなたが探しているものですか?

document.addEventListener("click", myClick);

function myClick(){




var cbs = document.getElementsByClassName('cb');

var index=-1;
var sum =0;
for(let i = 0;i<cbs.length;i++){
  if(cbs[i].checked==true)sum++;
  if(event.target==cbs[i])index=i;
 
}

if(sum > 3)cbs[index].checked=false;

}
<input type='checkbox' id='a' name ='1' class='cb'/>
<input type='checkbox' name ='2' class='cb'/>
<input type='checkbox' name ='3' class='cb'/>
<input type='checkbox' name ='4' class='cb'/>

于 2020-03-20T22:51:48.953 に答える