我尝试用jQuery检查单选按钮。这是我的代码:

<form>
    <div id='type'>
        <input type='radio' id='radio_1' name='type' value='1' />
        <input type='radio' id='radio_2' name='type' value='2' />
        <input type='radio' id='radio_3' name='type' value='3' /> 
    </div>
</form>

JavaScript:

jQuery("#radio_1").attr('checked', true);

不工作:

jQuery("input[value='1']").attr('checked', true);

不工作:

jQuery('input:radio[name="type"]').filter('[value="1"]').attr('checked', true);

不工作:

你还有别的主意吗?我错过了什么?


当前回答

试试这个。

要检查单选按钮使用值使用这个。

$('input[name=type][value=2]').attr('checked', true); 

Or

$('input[name=type][value=2]').attr('checked', 'checked');

Or

$('input[name=type][value=2]').prop('checked', 'checked');

要检查单选按钮使用ID使用这个。

$('#radio_1').attr('checked','checked');

Or

$('#radio_1').prop('checked','checked');

其他回答

jQuery 1.6中添加了另一个函数prop(),用于相同的目的。

$("#radio_1").prop("checked", true); 

我也遇到过类似的问题,一个简单的解决方法就是:

.click()

如果在调用函数后刷新radio,则任何其他解决方案都将工作。

$("#radio_1").attr('checked', true);
//or
$("#radio_1").attr('checked', 'checked');

这个答案要感谢Paul LeBeau的评论。我想我应该把它写下来作为一个正确的答案,因为令人惊讶的是没有答案。

唯一对我有用的(jQuery 1.12.4, Chrome 86)是:

$(".js-my-radio-button").trigger("click");

这可以完成我想要的一切—更改选定的单选按钮(无论是视觉上还是编程上)并触发事件,例如更改单选按钮。

只是像其他答案建议的那样设置“checked”属性不会改变我选择的单选按钮。

你必须做

jQuery("#radio_1").attr('checked', 'checked');

这就是HTML属性