我有以下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。我有一种感觉,这可能是因为它始终只是获得该名称的第一个单选按钮。如果是这种情况,我将如何解决这个问题?
提前致谢,
戴夫
答案 0 :(得分:5)
将:checked过滤器添加到您的选择器,它将起作用。 e.g。
val1 = $('input[name="group1"]:checked').val();
val2 = $('input[name="group2"]:checked').val();
答案 1 :(得分: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);
});
});
答案 2 :(得分:0)
是的,你是对的,这是该组中第一个输入的值。只需使用$('input[name="group1"]:checked')
代替$('input[name="group1"]')