我尝试用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);

不工作:

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


当前回答

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

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

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

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

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

其他回答

为了防止有人在使用jQuery UI时试图实现这一点,你还需要刷新UI复选框对象以反映更新后的值:

$("#option2").prop("checked", true); // Check id option2
$("input[name='radio_options']").button("refresh"); // Refresh button set

有时以上的解决方案并不奏效,那么你可以试试下面的方法:

jQuery.uniform.update(jQuery("#yourElementID").attr('checked',true));
jQuery.uniform.update(jQuery("#yourElementID").attr('checked',false));

另一种方法是:

jQuery("input:radio[name=yourElementName]:nth(0)").attr('checked',true);

试试这个:

$(document).ready(function(){
  $("#Id").prop("checked", true).checkboxradio('refresh');
});

得到的值:

$("[name='type'][checked]").attr("value");

设置的值:

$(this).attr({"checked":true}).prop({"checked":true});

单选按钮单击add attr checked:

$("[name='type']").click(function(){
  $("[name='type']").removeAttr("checked");
  $(this).attr({"checked":true}).prop({"checked":true});
});

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

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