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);
    });

});

现在,我的预期结果是,当其中一个单选按钮发生更改时,它会获取两个单选按钮的选定值并将它们显示在警报框中。

正如您在此处使用我的 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 回答