1

6 つのチェックボックスがある Web ページがあります。

<input type="checkbox" name="chk1" id="chk1" class="chkbox"/>
<input type="checkbox" name="chk2" id="chk2" class="chkbox"/>
<input type="checkbox" name="chk3" id="chk3" class="chkbox"/>
<input type="checkbox" name="chk4" id="chk4" class="chkbox"/>
<input type="checkbox" name="chk5" id="chk5" class="chkbox"/>
<input type="checkbox" name="chk6" id="chk6" class="chkbox"/>

jqueryを使用して、これら6つのチェックボックスがすべてチェックされているかどうかを確認するにはどうすればよいですか。6つすべてがチェックされている場合は、チェックボックス番号7をチェックしてください。

<input type="checkbox" name="chk7" id="chk7" class="chkbox"/>

私は関数を書き始めましたが、これがこれを行うための最良の方法であるかどうかはわかりません:

    function AllSectionsChecked {
        var isChecked1 = $('##chk1').attr('checked')?true:false;
        var isChecked2 = $('##chk2').attr('checked')?true:false;
        var isChecked3 = $('##chk3').attr('checked')?true:false;
        var isChecked4 = $('##chk4').attr('checked')?true:false;
        var isChecked5 = $('##chk5').attr('checked')?true:false;    
        var isChecked6 = $('##chk6').attr('checked')?true:false;                    
    }

どんな助けでも大歓迎です。私はそれがかなり簡単だと推測していますが、jqueryでこれを達成するための最良の方法を探しています.

更新: * ID と名前は動的に作成され、任意の順序またはスケールではない可能性があるため、ID はおそらく chk51 であり、次の ID は chk205 である可能性があり ます。

どうもありがとう

4

5 に答える 5

1

chk7最後のチェックボックスの ID が であって、そうでないと仮定しますchk5か?

$('#chk7').prop('checked', $('input[type="checkbox"]:lt(6):checked').length == 6);

デモンストレーション

于 2012-08-24T12:15:50.307 に答える
1

どのようにそのことについて?

$("#chk7").prop("checked", $(".chkbox").filter(function() {
    return /^chk[1-6]$/.test(this.id) && this.checked;
}).length == 6);

デモ: http://jsfiddle.net/FbQUF/

于 2012-08-24T12:16:31.063 に答える
0

これがその方法です: Fiddler Demo

<input id="1" name="1" class="chkbox" type="checkbox" />
<input id="2" name="2" class="chkbox" type="checkbox" />
<input id="3" name="3" class="chkbox" type="checkbox" />
<input id="4" name="4" class="chkbox" type="checkbox" />
<br />
<input id="5" name="5" class="chkbox" type="checkbox" />

$('input[type="checkbox"]').on('change', function() {
if (!$('input.paid[type=checkbox]:not(:checked)').length)
    $('input[name=5]').attr('checked','checked');
else
    $('input[name=5]').attr('checked',false);
})
于 2012-08-24T12:16:02.433 に答える
0
var checked = true;
$('.chkbox').each(function(){
   if($(this).is(':checked')) {
       alert('Element with id ' + $(this).attr('id') + ' is checked');
   } else {
       alert('Element with id ' + $(this).attr('id') + ' is unchecked');
       checked = false;
   }
});

if(checked)
     $('#checkbox7').attr("checked","checked");
于 2012-08-24T12:14:12.597 に答える
0

チェックしたいチェックボックスに特定のクラスを追加する場合(たとえば、 )、次のように:checked セレクターneedを使用できます。

$("#chk7").prop("checked", $(".need:checked").length === 6);
于 2012-08-24T12:12:02.727 に答える