Answers:
借助属性选择器,可以选择具有相应值的输入元素。然后,您必须使用显式设置属性.attr:
var value = 5;
$("input[name=mygroup][value=" + value + "]").attr('checked', 'checked');
从jQuery 1.6开始,您还可以使用.prop带有布尔值的方法(这应该是首选方法):
$("input[name=mygroup][value=" + value + "]").prop('checked', true);
请记住,您只需要先从一个单选按钮组下的任何一个单选按钮中删除选中的属性,然后便可以将选中的属性/属性添加到该单选按钮组中的一个单选按钮中。
从一个单选按钮组的所有单选按钮中删除“已检查的属性”的代码-
$('[name="radioSelectionName"]').removeAttr('checked');
.is这里无济于事,但我同意.prop。当时还没有;)将更新我的答案。谢谢!
.val()支持在单选或复选框组上设置值。该答案的方法在技术上有效,但回旋处且可读性/难记性低得多。
有一种更好的检查单选和复选框的方法。您必须将值数组传递给val方法,而不是原始值
注意:如果仅简单地自己传递值(而不是在array内),则将导致“ mygroup”的所有值均被设置为该值。
$("input[name=mygroup]").val([5]);
这是解释其工作原理的jQuery文档:http : //api.jquery.com/val/#val-value
而且.val([...])还与表单元素<input type="checkbox">,<input type="radio">和<option>S的一个内<select>。
具有与数组元素之一匹配的值的输入和选项将被选中或选中,而具有与数组元素之一不匹配的值的输入和选项将被选中或取消选中
小提琴演示此工作:https : //jsfiddle.net/92nekvp3/
var key = "Name_radio";
var val = "value_radio";
var rdo = $('*[name="' + key + '"]');
if (rdo.attr('type') == "radio") {
$.each(rdo, function (keyT, valT){
if ((valT.value == $.trim(val)) && ($.trim(val) != '') && ($.trim(val) != null))
{
$('*[name="' + key + '"][value="' + (val) + '"]').prop('checked', true);
}
})
}
$('input[name="mygroup"]').val([5])