我正在进行测验,其中每个问题都有一组单选按钮,如下所示:
<input type="radio" name="quid16" value="answid53" />Answer 1 : foo
<input type="radio" name="quid16" value="answid54" />Answer 2 : bar
<input type="radio" name="quid16" value="answid55" />Answer 3 : joe
<input type="radio" name="quid16" value="answid56" />Answer 4 : blogs
每个组都会获得一个ID,例如上面的quid16
;这个id是由PHP生成的,不是固定的。
当我验证表单提交时,我需要检查所有组是否都有一个选中的单选按钮。
问题是我事先并不知道群组ID。我该如何解决这个问题?
答案 0 :(得分:7)
您可以选择所有收音机,以“quid”开头,然后:
代码:
var radios = $('[name^=quid]'),
names = $.unique(radios.map(function() {
return this.name;
})),
checked = radios.filter(function() {
return this.checked;
});
if (names.length == checked.length) {
alert('all answers are checked');
}
答案 1 :(得分:0)
使用Attribute Starts With Selector获取前缀为'quid'的元素,使用jQuery.is选择:checked
的元素。例如:
$('[name^=quid]').is(':checked'); //Returns true if any radio buttons are 'checked'
这是JSFiddle的一个例子:http://jsfiddle.net/SDXSf/
<input type="radio" name="quid16" value="answid53" />Answer 1 : foo <br/>
<input type="radio" name="quid16" value="answid54" />Answer 2 : bar <br/>
<input type="radio" name="quid16" value="answid55" />Answer 3 : joe <br/>
<input type="radio" name="quid16" value="answid56" />Answer 4 : blogs <br/>
<br/>
<button>Test</button>
<script type="javascript">
$(function(){
function isOneChecked(selector)
{
return $(selector).is(':checked')
}
$('button').click(function(){
alert(isOneChecked('[name^=quid]') ? 'Validated' : 'Please select a radio button');
});
});
</script>
答案 2 :(得分:-1)
if ($('input:radio').is(':checked')) {function()} else {function()}