0

私はこのようなDOM構造を持っています(過密のために他のtdを表示したくありません):

<table>
<tr><td><input type="checkbox" name="checkbox1" class="rowSelectCheckbox"></td></input></tr>
<tr><td><input type="checkbox" name="checkbox2" class="rowSelectCheckbox"></td></input></tr>
<tr><td><input type="checkbox" name="checkbox3" class="rowSelectCheckbox"></td></input></tr>
<tr><td><input type="checkbox" name="checkbox4" class="rowSelectCheckbox"></td></input></tr>

</table>

<input type="checkbox" name="checkbox_select" id="lastCheckbox"></input>

私がやろうとしているのは、lastCheckboxのIDを持つ最後のチェックボックスを設定して、他のチェックボックスのいずれかがチェックされているかどうかをチェックすることです(チェックボックス1、チェックボックス2などのIDを持つチェックボックスのいずれか。この最後のチェックボックスもオフに設定します。

4

5 に答える 5

1

ちょっとしたちょっとしたことです。終了</input>タグはタグの前にあり</td>ます。

そうでなければ、それはかなり簡単です。

$(".rowSelectCheckbox").click(function(){
    var lastCheckbox = $("#lastCheckbox");
    if $(".rowSelectCheckbox:checked").length) {
        lastCheckbox.attr("checked", "checked");
    } else {
        lastCheckbox.removeAttr("checked");
    }
});
于 2011-09-04T00:02:38.810 に答える
0

次のようなことをする必要があります。

$('.rowSelectCheckbox').change( function() {
    flag = false;
    $('.rowSelectCheckbox').each( function() {
        if ($(this).is(':checked')) {
            flag = true;
        }
    });    
    $('#lastCheckbox').prop('checked', flag);
});

ここでのライブデモンストレーション:http://jsfiddle.net/nayish/teXHe/

于 2011-09-03T23:59:09.370 に答える
0

簡単なif-testはこれを行う必要があります:

$("input.rowSelectCheckbox").change(function(){
    if ( $("input.rowSelectCheckbox:checked") ) { //include "rowSelectCheckbox" so id=lastCheckbox doesn't trip the test
        $("input#lastCheckbox").attr("checked");
    }
    else
        $("input#lastCheckbox").removeAttr("checked");
    }
});

.each()などのループは、(いずれか)がチェックされている場合にのみ気にするため、不要ですinput.rowSelectCheckbox<input class="rowSelectCheckbox" />これは、チェックされたanに最初に遭遇したときにtrueを返します;)

于 2011-09-04T00:02:05.090 に答える
0

次のjQueryでうまくいくはずです

$(document).ready(function() {
    $(".rowSelectCheckbox").click(function() {
        var numChecked = $(".rowSelectCheckbox").filter(":checked").length;

        if(numChecked > 0)
        {
            $("#lastCheckbox").prop("checked", "checked");
        }
        else
        {
            $("#lastCheckbox").prop("checked", false);
        }
    });
});

これにより、チェックボックスのいずれかがクリックされたときにチェックされたチェックボックスの数がカウントされます。この数が0より大きい場合は、テーブルの外側にある最後のチェックボックスをオンにします。

ここに実用的な例があります。

于 2011-09-04T00:02:08.393 に答える
0

これを試して:

$('.rowSelectCheckbox').change( function() {
    $('.rowSelectCheckbox').each( function() {
        if ($(this).prop('checked')) {
            $('#lastCheckbox').prop('checked', true);
            return false;
        }

        $('#lastCheckbox').prop('checked', false);
    } );
} );

フィドル: http: //jsfiddle.net/B78vP/

于 2011-09-03T23:55:06.137 に答える