使用值设置来自无线电组的选定无线电

dco*_*bus 145 jquery

我为什么要挣扎?

我有一个值:5

如何检查组"mygroup"的单选按钮值为5?

$("input[name=mygroup]").val(5); // doesn't work?
Run Code Online (Sandbox Code Playgroud)

Fel*_*ing 325

属性选择器的帮助下,您可以选择具有相应值的input元素.然后你必须使用.attr以下方法显式设置属性:

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

从jQuery 1.6开始,你也可以使用.prop带有布尔值的方法(这应该是首选方法):

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

请记住,您首先需要从一个单选按钮组下的任何单选按钮中删除已检查的属性,然后您才能将选中的属性/属性添加到该单选按钮组中的单选按钮之一.

代码从一个单选按钮组的所有单选按钮中删除已检查的属性 -

$('[name="radioSelectionName"]').removeAttr('checked');
Run Code Online (Sandbox Code Playgroud)

  • 如果单选按钮的值具有小数,则需要将值放在引号中 (4认同)
  • @bladefist:`.is`在这里没有帮助,但我同意`.prop`.当时没有它;)会更新我的答案.谢谢! (3认同)
  • 见乔纳森的回答.jQuery文档显示`.val()`支持在radio或checkbox组上设置值.这个答案在技术上有效,但环形交叉,可读性/难忘性差. (3认同)

Jon*_*ier 138

有一种更好的方法来检查无线电和复选框; 您必须将值数组传递给val方法而不是原始值

$("input[name=mygroup]").val([5]);
Run Code Online (Sandbox Code Playgroud)

以下是解释其工作原理的jQuery文档:http://api.jquery.com/val/#val-value

而且.val([...])还与表单元素<input type="checkbox">,<input type="radio"><option>S的内部<select>.

将检查或选择具有与阵列的一个元素匹配的值的输入和选项,而具有与阵列的一个元素不匹配的值的输入和选项将被取消选中或取消选中

小提琴演示这个工作:https://jsfiddle.net/92nekvp3/

  • 这应该标记为正确的答案. (5认同)

Dav*_*mas 14

试试这个:

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

JS小提琴演示.


hun*_*ter 8

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


Jea*_*mon 7

如上所述更改属性值时,change事件不会被触发,因此如果出于某些原因需要,您可以像这样触发它

$('input[name=video_radio][value="' + r.data.video_radio + '"]')
       .prop('checked', true)
       .trigger('change');
Run Code Online (Sandbox Code Playgroud)


小智 6

纯 JavaScript 版本:

document.querySelector('input[name="myradio"][value="5"]').checked = true;
Run Code Online (Sandbox Code Playgroud)


kar*_*ran 5

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

JS小提琴演示


小智 5

我在使用时遇到错误

$("input[name=mygroup][value="value"]").prop('checked', true);
Run Code Online (Sandbox Code Playgroud)

工作方式是

$("input[name=mygroup][value='value']").prop('checked', true);
Run Code Online (Sandbox Code Playgroud)

问题是处理引号(')和双引号(“)。