0

数ページの長いコードがありますが、これを機能させるのに苦労しています。次のスクリプトは、1 つのメイン チェックボックスで onclick コマンドを使用して、特定の ID を持つすべてのチェックボックスをチェックして無効にします。ユーザーがそのボックスのクリックを解除すると、チェックマークは消えますが、無効のままになります。リセット ボタンを押しても、無効になっているボックスは残ります。

Javascript:

 <script>
 function checkAllbase(bx) {
  var cbs = document.getElementsByTagName('input');
  for(var i=0; i < cbs.length; i++) {
    if(cbs[i].id == '1') {
      cbs[i].checked = bx.checked;
      cbs[i].disabled=true;
    }
  }
}
 </script> 
4

2 に答える 2

0

パッケージに関連付けられている各チェックボックスの入力に、同様の名前またはクラスを付けます。実際の html を見ずに、以下のサンプル html を提供します

HTML

<input type="checkbox" class="package1" name="package1[]" value="vacation">
<input type="checkbox" class="package1" name="package1[]" value="bonus">
<input type="checkbox" class="package1" name="package1[]" value="fries">

JS

function togglePackage(isChecked,packageName) {
  //Choose one of the two below to use

  //Below selects the inputs by the class name
  var cbs = document.querySelectorAll("input."+packageName);
  //Or Below selects the inputs by the input name
  var cbs = document.querySelectorAll("input[name^="+packageName+"]");

  for(var i=0; i<cbs.length; i++) {
        //Since they are either checked and disabled (both true)
        //or unchecked and enabled (both false) we can just use
        //isChecked to set both at once.
        cbs.checked = isChecked;
        cbs.disabled = isChecked;
  }
}

//Then somewhere call the togglePackage function
//bx here would be the main checkbox that you want to 
//have toggling the other boxes, and "package1" is obviously
//the name or the class you gave the checkboxes.
togglePackage(bx.checked,"package1");
于 2013-07-31T09:49:26.143 に答える