我正在使用以下脚本:
if($('.fmscr:checked').val()){
$('.fmscr').closest('.form-group').removeClass('has-error');
$('.fmscr').closest('.form-group').addClass('has-success');
}else{
$('.fmscr').closest('.form-group').addClass('has-error');
$('.fmscr').closest('.form-group').removeClass('has-success');
}
在以下收音机的表格中:
<div class='form-group'>
<div class='col-xs-12'>
<p>
Were you subject to the (FMSCR's) Department of Transportation (DOT) Regulations while employed?<span class='req'> *</span>
</p>
<label class='radio-inline'>
<input type='radio' class='fmscr checked' name='fmscr[]' value='1'> Yes
</label>
<label class='radio-inline'>
<input type='radio' class='fmscr checked' name='fmscr[]' value='-1'> No
</label>
</div>
</div>
有一定数量的单选按钮。上面的脚本在提交时运行,但在检查完两个按钮之前它不会计算单选按钮,也只检查一个单选按钮。那么我在这里做错了什么?我希望无论数量多少都能检查所有单选按钮,并让它们能够正确验证。如果需要任何进一步的信息,请告诉我!提前谢谢。
答案 0 :(得分:1)
如果您确实有多组radio
按钮共享同一个类选择器,则以下代码应该有所帮助:
$('.fmscr:checked').each(function() {
if( this.value ) {
$(this).closest('.form-group').removeClass('has-error');
$(this).closest('.form-group').addClass('has-success');
} else {
$(this).closest('.form-group').addClass('has-error');
$(this).closest('.form-group').removeClass('has-success');
}
});
答案 1 :(得分:-1)
您的代码
if ($('.fmscr:checked').val())
...仅考虑与选择器匹配的第一个找到的元素。有关详细信息,请参阅此处:http://api.jquery.com/val/ 我并不完全明白你想做什么,但你可以这样试试:
if ($('.fmscr:checked').length > 0 )) // at least one is checked
祝你好运!