在jQuery中,我想选择所有没有选中按钮的单选按钮组。
或者,有没有办法可以选择所有单选按钮组并遍历各组?
我正在动态地向页面添加N个单选按钮组,并且不会事先知道单选按钮组的名称是什么。
答案 0 :(得分:36)
查找所有广播组:
var radio_groups = {}
$(":radio").each(function(){
radio_groups[this.name] = true;
})
找到哪个无线电组已检查了无线电盒,哪些没有:
for(group in radio_groups){
if_checked = !!$(":radio[name='"+group+"']:checked").length
alert(group+(if_checked?' has checked radios':' does not have checked radios'))
}
答案 1 :(得分:0)
支持多个群组并进行预先检查。
$('input').click(function() {
var $t = $(event.target);
if ($t.hasClass('checked')) $t.removeAttr('checked');
else $('input[type="radio"][name="' + $t.prop('name') + '"]').not($t).removeClass('checked');
$t.toggleClass('checked');
}).filter(':checked').addClass('checked');
```
答案 2 :(得分:0)
按组名选择所有无线电并仅获取不同名称的列表:
function selectRadioByGroupName() {
return $.unique($('input:radio').map(function(index, element) {
return this.name;
}));
}
示例摘录:
function selectRadioByGroupName() {
return $.unique($('input:radio').map(function(index, element) {
return this.name;
}));
}
$(function () {
selectRadioByGroupName().each(function(index, element) {
$('body').append($('<p>First Group name is: ' + element + '</p>'));
});
});
<script src="https://code.jquery.com/jquery-1.12.1.min.js"></script>
<form action="">
<p>
Q1:
</p>
<input type="radio" name="gender" value="male"> Male<br>
<input type="radio" name="gender" value="female"> Female<br>
<input type="radio" name="gender" value="other"> Other
<br />
<p>
Q2:
</p>
<input type="radio" name="status" value="male"> Single<br>
<input type="radio" name="status" value="female"> Married<br>
<input type="radio" name="status" value="other"> Other
<br />
<input type="button" name="submit_id" value="Submit" onclick="submitAnswers()">
</form>
获取不同的组名后,可以循环使用它们。