0

こんにちはすべて行の他のすべてのチェックボックスがチェックされているときにチェックボックスをチェックするにはどうすればよいですか?つまり、次のようなdivテーブルがあります

<div id="Row-8">
    <span class="span2">
        <label class="checkbox">
            <input type="checkbox" class="regular-checkbox" onchange="checkallrowcheckboxes(this)" value="8" name="selectedObjects" id="8"><label for="rowcommoncheckbox-8"></label></label></span>
    <span class="span2">AddOrEdit</span>
    <span class="span2">
        <label class="checkbox">
            <input type="checkbox" value="8" class="regular-checkbox" name="chkAdd" id="Add-8"><label for="Add-8"></label></label></span>
    <span class="span2">
        <label class="checkbox">
            <input type="checkbox" value="8" class="regular-checkbox" name="chkEdit" id="Edit-8"><label for="Edit-8"></label></label></span>
    <span class="span2">
        <label class="checkbox">
            <input type="checkbox" value="8" class="regular-checkbox" name="chkDel" id="Delete-8"><label for="Delete-8"></label></label></span>
    <span class="span2">
        <label class="checkbox">
            <input type="checkbox" value="8" class="regular-checkbox" name="chkview" id="View-8"><label for="View-8"></label></label></span>
</div>

このように見えます

ChkColumn  PageName Chk1 Chk2 Chk3 Chk4

私が欲しいのは、右側のos行のすべてのチェックボックスがオンになっている場合、左側のチェックボックスが自動的にチェックされる必要があります。つまり、Chk1 Chk2Chk3Chk4がチェックされるとChkcolumnが自動的にチェックされます。

4

3 に答える 3

2

恥知らずな自己宣伝:これは、私が書いたjQueryプラグインの完璧なユースケースのようです。

これを試して:

$('#Row-8 input[type="checkbox"]:first')
    .checkAll('#Row-8 input[type="checkbox"]:not(:first)');​

デモ: http: //jsfiddle.net/mattball/9ErH6

于 2012-12-01T04:58:49.117 に答える
0

ここでのデモ:http://jsfiddle.net/Mx4q2/

チェックボックスにいくつかの「駆動」/「駆動」クラスを追加してから、次のスクリプトを使用しました。

function driveCheckbox(event){
    var $currentRow = $(this).parents('.row');

    var $checkedDrivers = $currentRow.find('.driving-checkbox:checked');
    if($checkedDrivers.length == 4){
        $currentRow.find('.driven-checkbox').prop('checked', true);
    } else {
        $currentRow.find('.driven-checkbox').prop('checked', false);
    }
}

function selectAll(event){

    var $currentRow = $(this).parents('.row');

    var $targets = $currentRow.find('.driving-checkbox');
    if($(this).is(':checked')){
        $targets.prop('checked', true);
    } else {
        $targets.prop('checked', false);
    }
}
$('.driving-checkbox').change(driveCheckbox);
$('.driven-checkbox').change(selectAll);

</ p>

于 2012-12-01T05:28:45.753 に答える
0
$(function() {
    $('#Row-8 input').change(function() {
        var add8 = $('#Add-8').is(':checked');
        var edit8 = $('#Edit-8').is(':checked');
        var delete8 = $('#Delete-8').is(':checked');
        var view8 = $('#View-8').is(':checked');
        if (add8 && edit8 && delete8 && view8) {
            $('#Row-8 input').attr('checked',false);
            $('#8').attr('checked',true);
        }
    });
});
于 2012-12-01T05:10:25.940 に答える