Установить выбранное радио из группы радио со значением - PullRequest
138 голосов
/ 06 января 2011

Почему я борюсь с этим?

У меня есть значение: 5

Как проверить переключатель «mygroup» группы со значением 5?

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

Ответы [ 9 ]

314 голосов
/ 06 января 2011

С помощью селектора атрибута вы можете выбрать элемент ввода с соответствующим значением.Затем вы должны установить атрибут явно, используя .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');
131 голосов
/ 25 марта 2014

Есть лучший способ проверить радио и флажок;вам нужно передать массив значений методу val вместо необработанного значения

Примечание: Если вы просто передаете значение само по себе (не будучи внутри массива ), что приведет к тому, что всем значениям "mygroup" будет присвоено значение.

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

14 голосов
/ 06 января 2011

Попробуйте это:

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

JS Fiddle demo .

8 голосов
/ 06 января 2011
$("input[name='mygroup'][value='5']").attr("checked", true);
7 голосов
/ 16 июля 2015

Когда вы изменяете значение атрибута, как упомянуто выше, событие change не вызывается, поэтому при необходимости по каким-либо причинам вы можете вызвать его так, как это нужно

$('input[name=video_radio][value="' + r.data.video_radio + '"]')
       .prop('checked', true)
       .trigger('change');
3 голосов
/ 23 декабря 2017

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

JS fiddle Demo

1 голос
/ 26 июня 2015

Или вы можете просто записать в него атрибут value:

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

Это работает для меня.

0 голосов
/ 24 мая 2019
$("input[name=mygroup]").val([5]);

Вот документ JQuery, который объясняет, как это работает: http://api.jquery.com/val/#val-value

0 голосов
/ 26 июля 2016
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);
   }
  })
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...