我一直在尝试用jQuery来编程选择单选按钮,我以为会像更改checked属性一样简单.
但是,以下代码似乎没有在Chrome / Firefox中的jQuery 1.9.1中预期.
预期行为:单击包围单选按钮的div – > ‘checked’属性设置 – >在DOM中呈现检查.
实际行为:点击包围单选按钮的div – > ‘checked’属性设置 – >渲染检查DOM中的第一个和第二个按钮,后续按钮不呈现为检查.
jQuery的:
$('div.form-type-radio').on('click',function () { var Id = $(this).find('input[type=radio]').attr('id'); $('form input[type=radio]:not(#'+Id+')').removeAttr('checked'); $('#' + Id).attr('checked','checked'); console.log($('#' + Id)); });
这是一个jsFiddle – http://jsfiddle.net/GL9gC/
我已经尝试了与以前版本的jQuery相同的代码,它都按预期工作.
解决方法
在这种情况下,您应该使用
prop()而不是
attr()/
removeAttr().
这是一个工作jsFiddle.
jQuery的:
$('div.form-type-radio').on('click',function () { var Id = $(this).find('input[type=radio]').prop('id'); $('form input[type=radio]:not(#'+Id+')').prop('checked'); $('#' + Id).prop('checked','checked'); console.log($('#' + Id)); });