我想查看每组的第一个单选按钮。但是有一些单选按钮被禁用,因此脚本应该忽略它们并转到下一个非禁用按钮。
我写了类似的东西,但它不起作用:
$(document).ready(function(){ if ($("input['radio']).is(':disabled')) { $(this).attr('checked', false ); } else { $(this).attr('checked', true ); } });
非常感谢
答案 0 :(得分:59)
如果您的按钮按名称属性分组,请尝试:
$("input:radio[name=groupName][disabled=false]:first").attr('checked', true);
如果它们按父容器分组,则:
$("#parentId input:radio[disabled=false]:first").attr('checked', true);
答案 1 :(得分:17)
$("input:radio[name=groupX]:not(:disabled):first")
这应该为您提供组中的第一个非禁用单选按钮...
答案 2 :(得分:8)
以下是您想要的:
$(document).ready(
function(){
$('input:radio:first-child').attr('checked',true);
}
);
演示:JS Bin。
答案 3 :(得分:3)
<input type="radio" name="r1"><br>
<input type="radio" name="r1"><br>
<hr>
<input type="radio" name="r2"><br>
<input type="radio" name="r2"><br>
<input type="radio" name="r2"><br>
<script>
$(function(){
//removed duplicates form the following array
$(jQuery.unique(
//create an array with the names of the groups
$('INPUT:radio')
.map(function(i,e){
return $(e).attr('name') }
).get()
))
//interate the array (array with unique names of groups)
.each(function(i,e){
//make the first radio-button of each group checked
$('INPUT:radio[name="'+e+'"]:visible:first')
.attr('checked','checked');
});
});
</script>
jsfiddle = http://jsfiddle.net/v4auT/
答案 4 :(得分:2)
我测试了第一个答案,但无法解决。我必须使用以下句子:
jQuery("input:radio[name=groupName]:visible")[0].checked=true;
这会检查名称为groupName的第一个可见单选按钮
答案 5 :(得分:1)
试试这个:
$("input:radio:not(:disabled)").attr("checked", true);
要检查组中的第一个单选按钮,您可以
$("parentelement input:radio:not(:disabled):first-child").attr("checked", true);
答案 6 :(得分:0)
对2020年进行一些升级。官方文档建议使用“ first()”和“ prop()”
$("input[name='groupName'][disabled=false]").first().prop("checked", true);
答案 7 :(得分:0)
这会默认选中第一个收音机
jQuery("input:radio[name=groupName]").first().click()