0

jQueryマップ関数を使用してチェックボックスの値を取得しようとしていますが、うまく機能しています。input問題は、 s (タイプ チェックボックス)をラップするul liと、チェックされたチェックボックスの値を取得できないことです。また、ユーザーがチェックボックス自体またはliタグをクリックしてチェックボックスをチェックするようにします。これまでの私の試み:

<form name="myform" action="" method="get">
    <ul class="chk">
        <li><input type="checkbox" name="chk[]" value="India" />India</li>
        <li><input type="checkbox" name="chk[]" value="Pakistan" />Pakistan</li>
        <li><input type="checkbox" name="chk[]" value="UK" />UK</li>
        <li><input type="checkbox" name="chk[]" value="USA" />USA</li>
        <li><input type="checkbox" name="chk[]" value="Russia" />Russia</li>
    </ul>
</form>

 

$(document).ready(function(){
    $('.chk li').click(function(){
        var c = $(this).children();

        var check = $(c).map(function(){ 
            check.attr('checked','checked');
            return this.value;
        });
        console.log($(check));
    });
});
4

3 に答える 3

0

を使用したものは次のmap()とおりです。

$('.chk li').click(function (e) {
    var innerCheckbox = $(this).find(':checkbox');
    if (e.target != innerCheckbox[0]) {
        innerCheckbox.prop('checked', !innerCheckbox.prop('checked'));
    }
    var check = $(this).parent().find(':checkbox:checked').map(function () {
        return this.value; // or return this;
    }).get(); // <---------- calling get() to get a basic array

    console.log(check); // array with the values of the checked ones
});

イベントの対象が の場合、チェックボックスをオンにしますli。その後、チェックされたチェックボックスとmap()その値のリストをcheck配列に選択します。

ここでデモを参照してください

于 2013-06-04T01:25:17.253 に答える
0

ラベルのクリックを有効にするには、次を使用します。

<li><input type="checkbox" name="chk[]" id="ch1" value="India" />
   <label for="ch1">India</label>
</li>

残りはすでに回答済みです。

于 2013-06-04T01:28:15.797 に答える