2011-02-09 173 views
0

我正在使用一個名爲「selectedids []」的複選框,我試圖用JavaScript選擇所有複選框。代碼不起作用。當我將複選框的名稱更改爲「selectedids」時,它的作用很好,但我不能這樣做,因爲我需要在POSTED頁面上選擇的所有ID。選擇多個複選框的問題

複選框如下:

foreach($rows as $row) 
{ 
<input type="checkbox" name="selectedids[]" value="<?php echo $row['id']; ?>" class="checkbox" /> 
........ 
........ 
} 

和Java腳本函數如下:

function SetAllCheckBoxes(CheckValue) 
{ 
    var CheckValue=true; 
    if(!document.forms['main']) 
     return; 
    var objCheckBoxes = document.forms['main'].elements['selectedids[]']; 
    if(!objCheckBoxes) 
     return; 
    var countCheckBoxes = objCheckBoxes.length; 
    if(!countCheckBoxes) 
     objCheckBoxes.checked = CheckValue; 
    else 
     // set the check value for all check boxes 
     for(var i = 0; i < countCheckBoxes; i++) 
      objCheckBoxes[i].checked = CheckValue; 
} 

請幫我......提前

謝謝.......

回答

3

你有選擇使用jQuery嗎?如果是這樣,那麼你可以這樣做:

$(':checkbox').each(function(){ 
    $(this).attr('checked',true); 
}); 

它還可能工作嘗試:

$(':checkbox').attr('checked',true); 

或者,如果你只是想確保所有的箱子都只有在檢查頁面第一次加載你可以讓你的PHP創建複選框包括「CHECKED」。即

<input type='checkbox' name='selectedids[]' value='value' CHECKED> 

更新使用方法:根據註釋

+1

您可能意指`$(':checkbox')`,注意冒號 – knittl 2011-02-09 16:27:23

1

如果是我,我會使用類複選框的辨別出來,帶着幾分的jQuery的複選框。 這會工作:

$('input.checkbox').each(function(){$(this).attr('checked',true); }); 

這將設置所有複選框帶班「複選框」爲真。


捱打吧!

2

你爲什麼不選擇他們的ID? 例如

var a=0; 
while(document.getElementById('mycheckbox_'+a))document.getElementById('mycheckbox_'+a).checked=true;