我有一个看起来像这样的表格:
<input type="radio" id="answer0" name="answer0" value="1" />
<input type="radio" id="answer0" name="answer0" value="2" />
<input type="radio" id="answer0" name="answer0" value="3" />
<input type="radio" id="answer0" name="answer0" value="4" />
我想要的是获取所选单选按钮,以便我使用下面的jQuery代码。
var id = "#answer0";
var isChecked = $(id).prop('checked');
但是我只在选中第一个单选按钮时得到结果。如果我选择第二个,第三个和第四个,那就没有结果。请帮忙。
对不起,对不起。我在php中生成单选按钮......print '<input type="radio" class="answer'. $q . '" id="answer'. $q . '" name="answer'. $q . '"value="1"/>' . $row['answer1'] .'<br/>';
print '<input type="radio" class="answer'. $q . '" id="answer'. $q . '" name="answer'. $q . '"value="2"/>' . $row['answer2'] .'<br/>';
print '<input type="radio" class="answer'. $q . '" id="answer'. $q . '" name="answer'. $q . '"value="3"/>' . $row['answer3'] .'<br/>';
print '<input type="radio" class="answer'. $q . '" id="answer'. $q . '" name="answer'. $q . '"value="4"/>' . $row['answer4'] .'<br/>';
所以我确定id是唯一的。我要做的是获取answer0,answer1的所选单选按钮值等等......到目前为止,我只能得到第一组值(answer0)。
我的jquery代码:
for ( var i = 1; i <=items; i++ ) {
var t = "answer" + i;
if($('.' + t).prop('checked')){
//alert(this.id);
alert(t);
correct++;
}
alert(correct);
}}
答案 0 :(得分:1)
元素的ID必须是唯一的。
为这些输入提供一个类名,例如.radio。
<input type="radio" id="answer0" class='radio' name="answer0" value="1" />
<input type="radio" id="answer1" class='radio' name="answer0" value="2" />
<input type="radio" id="answer2" class='radio' name="answer0" value="3" />
<input type="radio" id="answer3" class='radio' name="answer0" value="4" />
然后:
$('.radio').each(function(){
if($(this).prop('checked')){alert(this.id);}
});
您可以看到它的演示here
编辑:你知道,但课程不必是独一无二的。在你的循环中,你没有使用ID,你为每个元素使用不同的类名。所以要么改变。对于#或只是按照演示中的说明进行操作
如果您想查看所有收音机的值,请删除条件
$('.radio').each(function(){
alert(this.id+" "+this.value);
});
如果您只想查看所选收音机的值,则:
$('.radio').each(function(){
if($(this).prop('checked')){alert(this.id+" "+this.value);}
});
我的建议
我认为你应该把它包装成像这样的函数
function getSelectedRadioValue(){
$('.radio').each(function(){
if($(this).prop('checked')){return this.value;}
});
}
您可以随时拨打电话
if(getSelectedRadioValue()=='1'){
// make some magic
}else{
// more magic
}
答案 1 :(得分:1)
试试这个:
$("input:radio[name=answer0]").click(function(){;
alert($(this).val());
});
答案 2 :(得分:0)
ID应该是唯一的,为它们添加 NON-UNIQUE 类并执行以下操作:
$('input.class:checked').val()
或者如果您不想使用类,请使用您已有的名称(只需确保ID是唯一的 - 它是必须):
$('input[name=answer0]:checked').val()
编辑:现在您已编辑原始帖子,请尝试以下操作:
print '<input type="radio" class="answer" id="answer'. $q . '" name="answer'. $q . '"value="1"/>' . $row['answer1'] .'<br/>';
print '<input type="radio" class="answer" id="answer'. $q . '" name="answer'. $q . '"value="2"/>' . $row['answer2'] .'<br/>';
print '<input type="radio" class="answer" id="answer'. $q . '" name="answer'. $q . '"value="3"/>' . $row['answer3'] .'<br/>';
print '<input type="radio" class="answer" id="answer'. $q . '" name="answer'. $q . '"value="4"/>' . $row['answer4'] .'<br/>';
然后获取值只需执行此操作:
var value = $('input.answer:checked').val()
现在value
包含所选值
答案 3 :(得分:0)
它们都共享相同的ID,HTML中的唯一ID是必须。此外,为所述ID硬编码单个变量会更方便。
<input type="radio" id="answer0" name="answer0" value="1" />
<input type="radio" id="answer1" name="answer1" value="2" />
<input type="radio" id="answer2" name="answer2" value="3" />
<input type="radio" id="answer3" name="answer3" value="4" />
var id0 = "answer0";
var isChecked = $(id0).prop('checked');
等等。
答案 4 :(得分:0)
使用class而不是id。
<input type="radio" class="answer0" name="answer0" value="1" />
<input type="radio" class="answer0" name="answer0" value="2" />
<input type="radio" class="answer0" name="answer0" value="3" />
<input type="radio" class="answer0" name="answer0" value="4" />
$(function(){
$('.answer0').on('change', function(){
alert($(this).val());
});
});