0

すべてのチェックボックスを一度にチェックできるようにするこのコードがあります。

問題は、「すべて選択」チェックボックスを選択すると、他のすべてが選択されることですが、他の2つのチェックボックスの前に選択した場合、それら2つのチェックボックスを除くすべてが選択されます!

うまく動かない..

見てもらえますか?

関数:

function selectAll(x) {
for(var i=0,l=x.form.length; i<l; i++)
if(x.form[i].type == 'checkbox' && x.form[i].name != 'sAll')
x.form[i].checked=x.form[i].checked?false:true
}

すべて選択:

<input type="checkbox" name="sAll" onclick="selectAll(this)" /> 

私のページの他のすべてのチェックボックス:

<input type='checkbox' size='40' name='active[$i] ' ' ";?> <?php if($rows['img_active'] == 1) { echo 'checked'; }  ?> <? if("checked"){ echo 'value="1"';} else{ echo 'value="0"';}?>
4

4 に答える 4

2
function selectAll(x) {
    var checked = x.checked;
    for (var i = 0, l = x.form.length; i < l; i++) {
        var elem = x.form[i];
        if (elem !== x && elem.type === "checkbox") {
            elem.checked = checked;
        }
    }
}
于 2012-08-22T15:10:41.663 に答える
1

This will put all checkboxes in the same state as the check-all checkbox.

x.form[i].checked = x.checked ? false : true;
于 2012-08-22T15:11:41.427 に答える
0

このコードを変更します (チェック状態を切り替えます)。

x.form[i].checked=x.form[i].checked?false:true

これに(チェックされていない場合はチェックするだけです):

x.form[i].checked=true
于 2012-08-22T15:05:11.797 に答える
0

この行

x.form[i].checked=x.form[i].checked?false:true

チェックボックスの状態を切り替えるため、当然、チェックされていたものはすべてチェックされなくなります。

あなたがしたい

x.form[i].checked = true;

代わりは。

編集: チェックボックスの状態に応じてすべてのチェックボックスを動作させたいsAllですか?

x.form[i].checked = document.getElementsByName('sAll')[0].checked;
于 2012-08-22T15:06:45.433 に答える