簡體   English   中英

選擇javascript中的所有復選框-復選框具有不同值的數組

[英]selecting all checkboxes in javascript - with array of different values for checkbox

JavaScript代碼

function toggle(source) {

  console.log('here');
  checkboxes = document.getElementsByName('checkbox[]');

  for(var i=0, n=checkboxes.length;i<n;i++) {
       checkboxes[i].checked = source.checked;
    }
 }

PHP代碼動態生成所有復選框

    <td><input name="checkbox[<?php echo $row['id']?>]" type="checkbox" id="checkbox" value="<?php echo $row['id']; ?>"></td>

根據上面的PHP代碼,所有名稱值都是動態生成的。 上面的Javascript代碼無法選中所有復選框

請幫忙!


經過很長時間的研究,終於找到了解決我的關鍵問題的答案-選擇並選中所有具有不同名稱,值,ID和相同類型的復選框。

function toggle (source) {
var checkboxes;
var len = document.frm1.elements.length;
var x = document.getElementById('all');

for(var i = 0 ; i< len;i++){

    if(document.frm1.elements[i].type == "checkbox")
        {

        checkboxes = document.frm1.elements[i];
        if(x.checked == true)
        {
            document.frm1.elements[i].checked = true;
        }
        else
        {
            document.frm1.elements[i].checked = false;
        }
           }

     /*if( isAllCheck == false ){
        document.frm1.elements[i].checked = "true";
        //alert( "it is false" );
    }else{ 
        document.frm1.elements[i].checked = "false";
        //alert( "it is true" );
    }
   isAllCheck = !isAllCheck; */


            }
     console.log(checkboxes);
     for(var i=0, n=checkboxes.length;i<n;i++) {

checkboxes[i].checked = source.checked;

       }

我希望這會幫助其他人...

var inputs = document.getElementsByTagName("input");
var checkboxes=[];
for(var i = 0; i < inputs.length; i++) {
if(inputs[i].type == "checkbox") {
    checkboxes.push( inputs[i] ); 
}  
}

如果要檢查所有這些,則必須添加行inputs[i].checked = true; if條件內

提示:不要為復選框分配相同的ID !!!

checked = false;
function ToggleAll(source) {
checkboxes = document.getElementsByName('course[]');
for(var i=0, n=checkboxes.length;i<n;i++) {
checkboxes[i].checked = source.checked;
}
}

HTML:
<input type='checkbox' name='checkall' onclick='ToggleAll(this);'> Select All
<input type='checkbox' id = 'course' name='course[]'>Val1
<input type='checkbox' id = 'course' name='course[]'>Val2

因為您的復選框都沒有名稱“ checkbox []”,所以這種方式將無法正常工作。 您可以通過為它們提供一個類並使用getElementsByClassName函數來獲取所有復選框。 因此,您獲得復選框的行將如下所示:

var checkboxes = document.getElementsByClassname('yourClassName');

在html中,您只需為復選框分配類'yourClassName'。

請注意,某些舊版瀏覽器不支持 getElementsByClassname。

您的HTML產生了

<td> <輸入名稱=“ checkbox [1]”類型=“ checkbox” id =“ checkbox” value =“ 1”> </ td>

這與

<td> <輸入名稱=“ checkbox []”類型=“ checkbox” id =“ checkbox” value =“ 1”> </ td>

要使PHP自動選中所有需要添加的復選框

<td> <輸入名稱=“ checkbox []”類型=“ checkbox” id =“ checkbox” value =“ 1”已選中> </ td>

使用jQuery,您應該可以執行以下操作

checkboxes = $('input[name^="checkbox"]');

獲取名稱以“ checkbox”開頭的所有輸入元素

將class =“ toggle”分配給要與源一起切換的所有復選框。

var elemsToggle = document.getElementsByClassName("toggle");
  for(var i = 0; i < inputs.length; i++) {
    elemsToggle[i].checked = source.checked;
  }

此代碼將檢查或取消選中所有具有class =“ toggle”的復選框,具體取決於源復選框的狀態。

您可以使用querySelectorAll

function toggle_checkbox(name) {
        checkboxes = document.querySelectorAll("input[name^='"+ name +"[']");

        for (var i = 0, n = checkboxes.length; i < n; i++) {
            checkboxes[i].checked = source.checked;
        }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM