设置单选按钮

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

我已经试过了。

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

newcol是单选按钮的 id。

也许应该稍微修改一下。

有两组无线电盒,一组带有联络器,另一组带有行。所以我明白了不用 id 的意义。我的错。我举个例子:

<input type="radio" name="rows" class="listOfCols"
style="width: 50%; " value="Site"></input>

还有

<input type="radio" name="cols" class="listOfCols"
style="width: 50%; "  value="Site"></input>

我需要设置正确的 ID。

300975 次浏览

在您的选择器中,您似乎试图获取具有给定 id 的单选按钮的某些嵌套元素。如果你想选择一个单选按钮,你应该在选择器中选择这个单选按钮,而不是其他东西:

$('input:radio[name="cols"]').attr('checked', 'checked');

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

<input type="radio" name="cols" value="1" />

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

<input type="radio" name="cols" value="1" id="myradio" />

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

$('#myradio').attr('checked', 'checked');

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

试试这个方法吧(因为你是通过 ID 来选择的) :

$('#' + newcol).prop('checked',true);

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

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

由于 newcol是单选按钮的 ID,您可以简单地使用它,如下所示。

$("#"+newcol).attr('checked',true);

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

$('#'+newcol).prop('checked', true);

试试这个:

$("#" + newcol).attr("checked", "checked");

我在使用 attr("checked", true)时遇到了一些问题,所以我倾向于使用上面的代码。

此外,如果你有 ID,那么你不需要其他的东西来选择。 ID 是唯一的。

我在这里找到了答案:
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']);

您可以尝试以下代码:

$("input[name=cols][value=" + value + "]").attr('checked', 'checked');

这将设置为单选列检查的属性和指定的值。

你可以简单地使用:

$("input[name='cols']").click();

所选择的答案在这种情况下起作用。

但问题是如何根据 Radigroup 和 Dynamic id 找到元素,而且答案也不会影响显示的单选按钮。

这一行确实选择了在屏幕上显示更改时所要求的内容。

$('input:radio[name=cols][id='+ newcol +']').click();

使用 .filter()也可以,而且对 id、 value 和 name 也很灵活:

$('input[name="cols"]').filter("[value='Site']").attr('checked', true);

(见 这个博客)

综合以前的答案:

$('input[name="cols"]').filter("[value='Site']").click();

在我的例子中,单选按钮值从数据库中提取出来,然后设置到表单中。以下代码对我很有用。

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

$('#a_state option[value="'+a_state+'"]').prop("selected", true);

prop()是最好的选择,因为 attr 有时是随机工作的。

在我的例子中,我使用(在单击单选时激活 CSS 动画)

$('input:radio[name="cols"]').trigger ('click');