2011-01-06 49 views

回答

258

attribute selector的帮助下,您可以选择具有相应值的输入元素。然后,你必须显式地设置的属性,使用.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'); 
+0

.prop('checked',true)可能会更好或.is() – bladefist 2013-01-15 21:53:52

+3

@bladefist:'.is'在这里没有帮助,但我同意'.prop'。它当时还没有可用;)会更新我的答案。谢谢! – 2013-01-15 22:04:28

+4

如果单选按钮的值有一个小数,则需要将该值放在引号 – Robert 2013-11-15 07:50:31

11

试试这个:

$('input:radio[name="mygroup"][value="5"]').attr('checked',true); 

JS Fiddle demo

+0

'选择“不适用于单选按钮。 – 2011-01-06 19:12:47

+0

@Felix:不,它应该已经被检查过了,自编辑。 =) – 2011-01-06 19:14:56

+0

@Dave别忘了“mygroup” – hunter 2011-01-06 19:17:53

8
$("input[name='mygroup'][value='5']").attr("checked", true); 
102

有检查无线电和复选框的一个更好的方式;你有值的数组传递给VAL方法来代替原始值

$("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/

1

或者你可以只写value属性给它:

$(':radio[value=<yourvalue>]').attr('checked',true); 

这对我有用。

5

当您更改属性值如change事件上面提到的没有被触发,所以如果需要某些原因,你可以触发它像这样

$('input[name=video_radio][value="' + r.data.video_radio + '"]') 
     .prop('checked', true) 
     .trigger('change'); 
0
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); 
    } 
    }) 
} 
+3

你能解释一下你的代码在你的答案中做了什么吗?至少一句话左右。以及它如何解决这个问题。谢谢。 – Alex 2016-07-26 07:53:30