jQuery设置单选按钮

mik*_*628 128 jquery radio-button

我想设置一个单选按钮.我想通过使用值或id来设置它.

这就是我尝试过的.

$('input:radio[name=cols]'+" #"+newcol).attr('checked',true);
Run Code Online (Sandbox Code Playgroud)

newcol 是单选按钮的ID.

也许有点编辑.

有两组收音机盒,一组带有cols,另一组带有行.所以我看到了不使用id的观点.我的错.所以我举个例子:

<input type="radio" name="rows" class="listOfCols" 
   style="width: 50%; " value="Site"></input>
Run Code Online (Sandbox Code Playgroud)

<input type="radio" name="cols" class="listOfCols" 
   style="width: 50%; "  value="Site"></input>
Run Code Online (Sandbox Code Playgroud)

删除了id,我需要设置正确的ID.

Jas*_*per 193

您的选择器查找input:radio[name=cols]id为newcol(以及该变量的值)的元素的后代.

试试这个(因为你无论如何都是通过ID选择):

$('#' + newcol).prop('checked',true);
Run Code Online (Sandbox Code Playgroud)

这是一个演示:http://jsfiddle.net/jasper/n8CdM/1/

此外,从jQuery 1.6开始,改变属性的优选方法是.prop():http://api.jquery.com/prop

  • 'prop`与`attr`的+1.`attr`已弃用于属性,不再适用于jQuery 2.0)) (5认同)
  • 检查@Chococroc的答案 (2认同)

Cho*_*roc 79

我在这里找到答案:https://web.archive.org/web/20160421163524/http :
//vijayt.com/Post/Set-RadioButton-value-using-jQuery

基本上,如果要检查一个单选按钮,必须将值作为数组传递:

$('input:radio[name=cols]').val(['Site']);
$('input:radio[name=rows]').val(['Site']);
Run Code Online (Sandbox Code Playgroud)

  • @Chococroc您尚未正确配置Markdown of question.我看到了Web存档版本并正确链接了它.审核后它将正确链接到该网站. (2认同)
  • 看来这应该是可接受的答案,因为它是[jQuery docs](http://api.jquery.com/val/)中提到的解决方案 (2认同)

Dar*_*rov 15

在你的选择器中,你似乎试图获取具有给定id的单选按钮的一些嵌套元素.如果要检查单选按钮,则应在选择器中选择此单选按钮,而不是其他内容:

$('input:radio[name="cols"]').attr('checked', 'checked');
Run Code Online (Sandbox Code Playgroud)

这假设您的标记中有以下单选按钮:

<input type="radio" name="cols" value="1" />
Run Code Online (Sandbox Code Playgroud)

如果你的单选按钮有一个id:

<input type="radio" name="cols" value="1" id="myradio" />
Run Code Online (Sandbox Code Playgroud)

你可以直接使用id选择器:

$('#myradio').attr('checked', 'checked');
Run Code Online (Sandbox Code Playgroud)


小智 11

您可以尝试以下代码:

$("input[name=cols][value=" + value + "]").attr('checked', 'checked');
Run Code Online (Sandbox Code Playgroud)

这将设置为指定的无线电列和值检查的属性.

  • `...关于checked 属性要记住的最重要的概念是它不对应于checked 属性。` 来源:http://api.jquery.com/attr/ (2认同)

elc*_*nrs 9

你为什么需要'input:radio[name=cols]'.不知道你的HTML,但假设id是唯一的,你可以简单地做到这一点.

$('#'+newcol).prop('checked', true);
Run Code Online (Sandbox Code Playgroud)


The*_*ear 6

试试这个:

$("#" + newcol).attr("checked", "checked");
Run Code Online (Sandbox Code Playgroud)

我遇到过问题attr("checked", true),所以我倾向于使用上面的代码.

此外,如果您有ID,那么您不需要其他东西供选择.ID是唯一的.