1

私は次のHTMLを持っています:

<div class="row1">
    <input type="radio" name="group1" value="0" checked="checked"/>Zero
    <input type="radio" name="group1" value="1" />One
</div>

<div class="row2">
    <input type="radio" name="group2" value="0" checked="checked" />Zero
    <input type="radio" name="group2" value="1" />One
</div>

次のjQueryコードとともに:

$(document).ready(function() {
    var val1 = "";
    var val2 = "";

    $('input[name="group1"],input[name="group2"]').change(function() {
        val1 = $('input[name="group1"]').val();
        val2 = $('input[name="group2"]').val();
        alert(val1 + " : " + val2);
    });

});

さて、私の期待する結果は、ラジオボタンの1つが変更されると、両方のラジオボタンの選択された値を取得し、それらをアラートボックスに表示することです。

ここで私のjsFiddleを使用して見ることができるように:http://jsfiddle.net/2whkp/結果は常に0:0です。これは、常にその名前の最初のラジオボタンを取得しているためかもしれないと感じています。ただし、その場合、これをどのように回避しますか?

前もって感謝します、

デイブ

4

3 に答える 3

5

:checkedフィルターをセレクターに追加すると、機能します。例えば

val1 = $('input[name="group1"]:checked').val();
val2 = $('input[name="group2"]:checked').val();
于 2011-11-04T12:29:18.317 に答える
1
$(document).ready(function() {
    var val1 = "";
    var val2 = "";

    $('input:radio').change(function() {
        val1 = $('input:radio[name="group1"]:checked').val();
        val2 = $('input:radio[name="group2"]:checked').val();
        alert(val1 + " : " + val2);
    });

});
于 2011-11-04T12:30:00.857 に答える
0

はい、その通りです。それがグループの最初の入力の値です。$('input[name="group1"]:checked')代わりに使用してください$('input[name="group1"]')

于 2011-11-04T12:30:55.093 に答える