Jquery 使用值设置收音机组中选定的收音机

Jquery 使用值设置收音机组中选定的收音机,jquery,Jquery,为什么我要为此挣扎 我有一个值:5 如何检查值为5的组“mygroup”的单选按钮 $("input[name=mygroup]").val(5); // doesn't work? 试试这个: $('input:radio[name="mygroup"][value="5"]').attr('checked',true); .在的帮助下,您可以选择具有相应值的输入元素。然后必须使用以下命令显式设置属性: 由于jQuery 1.6,您还可以使用带有布尔值的方法(这应该是首选方法): 请记住,

为什么我要为此挣扎

我有一个值:5

如何检查值为5的组“mygroup”的单选按钮

$("input[name=mygroup]").val(5); // doesn't work?
试试这个:

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

在的帮助下,您可以选择具有相应值的输入元素。然后必须使用以下命令显式设置属性:

由于jQuery 1.6,您还可以使用带有布尔值的方法(这应该是首选方法):

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

用于从一个单选按钮组的所有单选按钮中删除选中属性的代码-

$('[name="radioSelectionName"]').removeAttr('checked');

有更好的方法检查收音机和复选框;必须将一个值数组传递给val方法,而不是原始值

注意:如果只传递值本身(而不在数组中),则会将“mygroup”的所有值设置为该值

$("input[name=mygroup]").val([5]);
以下是jQuery文档,解释了它的工作原理:

.val([…])
也可用于
中的
等表单元素

如果输入和选项的值与数组的某个元素匹配,则将选中或选择该输入和选项,而如果输入和选项的值与数组的某个元素不匹配,则将取消选中或取消选择该输入和选项


Fiddle演示此工作:

或者您可以将value属性写入其中:

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

这对我很有用。

当您像上面提到的那样更改属性值时,
更改
事件不会被触发,因此如果出于某些原因需要,您可以像这样触发它

$('input[name=video_radio][value="' + r.data.video_radio + '"]')
       .prop('checked', true)
       .trigger('change');
$(“输入[name='RadioTest'][value='2']”)prop('checked',true)


纯JavaScript版本:

document.querySelector('input[name=“myradio”][value=“5”]”)。checked=true;

我在使用

$("input[name=mygroup][value="value"]").prop('checked', true);
工作方式是

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

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

@Hunter,谢谢……今天显然不是我进行jQuery的日子……=/.prop('checked',true)可能更好,或者.is()@bladefist:
.is
在这里没有帮助,但我同意
.prop
。它当时不可用;)将更新我的答案。谢谢!如果单选按钮的值有小数点,则需要将值输入quotes@Robert:是的,可能是。来自:“可以是一个不带引号的单词,也可以是带引号的字符串。“看乔纳森的回答。jQuery文档显示,
.val()
支持设置收音机或复选框组的值。这个答案在技术上是可行的,但它是迂回的,可读性和记忆性要差得多。你能解释一下你的代码在答案中的作用吗?至少一句话左右。以及它如何解决这个问题。谢谢。接受的答案(嗯,应该是)。从jQuery1.0开始,请参见文档中的最后一个示例(滚动到底):复制到这里:这是一种设置所有输入值的良好且一致的方法。太糟糕了,我花了6年时间才了解它。我花了相当长的时间试图弄清楚为什么我在组中的所有值都被设置为传递值,而不是检查值。结果是我自己传递了值,而不是在数组中传递。你能解释一下你的解决方案与已经提供的其他解决方案的不同之处吗?@Giovani Vercauteren,我们应该以字符串形式给出名称。因此,我在代码中将mygroup作为字符串。
$('input[name=video_radio][value="' + r.data.video_radio + '"]')
       .prop('checked', true)
       .trigger('change');
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])
$("input[name=mygroup][value="value"]").prop('checked', true);
$("input[name=mygroup][value='value']").prop('checked', true);