在 jQuery 中,我想选择所有未选中按钮的单选按钮组。
或者,有没有一种方法可以选择所有单选按钮组并遍历这些组?
我正在向页面动态添加 N 个单选按钮组,并且事先不知道单选按钮组的名称是什么。
在 jQuery 中,我想选择所有未选中按钮的单选按钮组。
或者,有没有一种方法可以选择所有单选按钮组并遍历这些组?
我正在向页面动态添加 N 个单选按钮组,并且事先不知道单选按钮组的名称是什么。
要查找所有无线电组:
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'))
}
支持多组和预检查。
$('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');
```
证明:http: //jsfiddle.net/abrkn/PGW2Z/
按组名选择所有电台并仅获取不同名称的列表:
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>
获得不同的组名后,可以循环使用它们。