1

私は一連のチェックボックスを持っています:

<tr id="tr5" onmouseover="changeBackgroundColor(this.id)" onmouseout="changeBackgroundColor2(this.id)">
<td class="td5"><input  name="benefit" value="Bonuses" id="benefit5" type="checkbox" onchange='addition();'</td>
<td class="td5"><label for="benefit5"> <b>Bonuses</b></label></td>

<tr id="tr6" onmouseover="changeBackgroundColor(this.id)" onmouseout="changeBackgroundColor2(this.id)">
<td class="td6"><input  name="benefit" value="Final salary pension" id="benefit6" type="checkbox" onchange='addition();'</td>
<td class="td6"><label for="benefit6"> <b>Final salary pension</b></label></td>

ユーザーが 3 つのチェックボックスを選択したら、残りを 1 回のヒットで無効にすることはできますか (30 個のチェックボックスがあります - 個別に行うことはできますが、面倒です)。そうです、どうやってそれを行うのですか?また、ユーザーがチェック ボックスの 1 つを選択解除した場合、再度有効にすることはできますか?

編集:可能であれば、誰かが私を正しい方向に向けることができますか?

前もって感謝します、

H.

4

1 に答える 1

2

デモ

var chk=0;
function checkCheckboxes() {
  var checkboxes = document.getElementsByName("benefit");
  for (var i=0;i<checkboxes.length;i++) {
    chk += checkboxes[i].checked?1:0; // count in case we reload
    checkboxes[i].onclick=function() { // set up event handler for each
      chk+=this.checked?1:-1; // add or subtract one
      if (chk > 3) {
        console.log(chk,"too many") 
        this.checked=false;
        chk--; // we counted too many
      }
    }
  }
}


function changeBackgroundColor(row,on) {
  var id = row.id; // if you need that
  row.style.backgroundColor=(on)?"red":"white";
}
window.onload=function() {
    var trs = document.getElementById("table1").rows;
    for (var i=0;i<trs.length;i++) {
      trs[i].onmouseover=function() {
        changeBackgroundColor(this,1);
      }
      trs[i].onmouseout=function() {
        changeBackgroundColor(this,0);
      }
    }
    checkCheckboxes();
}

使用して

<table id="table1">
<tr id="tr1">
<td class="td1"><input  name="benefit" value="Bonuses" id="benefit1" type="checkbox"</td>
<td class="td1"><label for="benefit1"> <b>Bonuses</b></label></td>
</tr>
    <tr id="tr2">
<td class="td2"><input  name="benefit" value="Bonuses" id="benefit2" type="checkbox"</td>
<td class="td2"><label for="benefit2"> <b>Bonuses</b></label></td>
</tr>
    <tr id="tr3">
<td class="td3"><input  name="benefit" value="Bonuses" id="benefit3" type="checkbox"</td>
<td class="td3"><label for="benefit3"> <b>Bonuses</b></label></td>
</tr>
    <tr id="tr4">
<td class="td4"><input  name="benefit" value="Bonuses" id="benefit4" type="checkbox"</td>
<td class="td4"><label for="benefit4"> <b>Bonuses</b></label></td>
</tr>
        </table>
于 2013-02-18T10:06:22.917 に答える