0

複数のチェック ボックスがあり、それらすべての全体的な値を取得したいと考えています。

たとえば、1 つがチェックされている場合、値は true/selected です。

何もチェックされていない場合は、false/チェックされていません。

私のHTMLは:

<input id="one" type="checkbox">
<input id="two" type="checkbox">
<input id="three" type="checkbox">
<input id="four" type="checkbox">
<button onclick="check();">Is checked (jQuery Chained)</button>
<button onclick="check2();">Is checked(Big If Statement)</button>

私のJavaScript/jQueryは次のとおりです。

function check() {
    var booleee = $('#one,#two,#three,#four').attr('checked');
    alert("Checked: " + booleee);
}

function check2() {
    if ($('#one').attr('checked') || $('#two').attr('checked') || $('#three').attr('checked') || $('#four').attr('checked')) {
        alert("Checked: true");
    }
    alert("Checked: false");
}

Js Fiddle:ここをクリック

注意してください、私はこの問題を解決しました。この質問は、なぜ私のchecked2()機能が機能し、機能しないのかを理解するのに役立ちますcheck()

4

5 に答える 5

2

var booleee = $('#one,#two,#three,#four').attr('checked');最初の (この場合#oneは ) チェックボックスがチェックされているかどうかのみをチェックします。

attrのドキュメントから

一致した要素のセットの最初の要素の属性の値を取得します。

そのはず

var booleee = $('#one,#two,#three,#four').filter(':checked').length > 0;

また、新しいバージョン (>1.6) では、代わりに :checked フィルターを使用する代わりに、プロパティ 'checked' ( ) を使用する必要.prop('checked')あります。attr.is(':checked')

于 2013-08-22T11:04:01.107 に答える
1

より良いアプローチ: http://jsfiddle.net/arvind07/ZP78F/

function check() {
    var checks = $('input:checkbox');
    var checked = 0;
    checks.each(function() {
        if ($(this).is(":checked")) {
            checked = 1;
            return false;
        }
    });
    if (checked) {
        alert("Checked");
    } else {
        alert("Not checked");
    }
}
于 2013-08-22T11:07:53.717 に答える
1

のすべての要素をチェックしているわけではないためselectorです。

それを機能させるために

  function check() {
    var booleee =$("input:checkbox:checked").length > 0;
    alert("Checked: " + booleee);
}

より具体的な選択を行うには、フォーム ID を追加しますselector

デモ

于 2013-08-22T11:07:47.747 に答える
0

HTMLでcheckedプロパティを設定

<input id="one" type="checkbox" checked="checked">
<input id="two" type="checkbox" checked="checked">
<input id="three" type="checkbox" checked="checked">
<input id="four" type="checkbox" checked="checked">

チェックを定義していないため、この属性を読み取れないため未定義と表示され、2番目の関数を呼び出すと、チェックボックスをチェックした属性が見つからないため、falseのみがアラートになります

デモを見る

于 2013-08-22T11:04:42.293 に答える
0
var checked = $(':checkbox:checked').length > 0;
于 2013-08-22T11:09:31.197 に答える