2011-11-04 57 views
1

我有以下HTML:选择值的jQuery

<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。我有一种感觉,这可能是由于它总是以该名称获得第一个单选按钮。如果是这种情况,我将如何解决这个问题?检查过滤器,您的选择,也将努力:

由于提前,

戴夫

回答

5

添加。例如

val1 = $('input[name="group1"]:checked').val(); 
val2 = $('input[name="group2"]:checked').val(); 
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); 
    }); 

}); 
0

是的,你说得对,这是该组中的第一个输入的值。只需使用$('input[name="group1"]:checked')而不是$('input[name="group1"]')