Установите выбранную радиостанцию ​​из группы радиостанций со значением

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

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

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

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

Ответ 1

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

Ответ 2

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

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

$("input[name=mygroup]").val([5]);

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

И .val([...]) также работает с элементами формы, такими как <input type="checkbox">, <input type="radio"> и <option> внутри <select>.

Входные данные и параметры, имеющие значение, совпадающее с одним из элементов массива, будут проверены или выбраны, в то время как входные значения и параметры, которые не соответствуют ни одному из элементов массива, будут отключены или невыбранные

Скрипка, демонстрирующая эту работу: https://jsfiddle.net/92nekvp3/

Ответ 3

Попробуйте следующее:

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

JS Fiddle demo.

Ответ 4

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

Ответ 5

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

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

Ответ 6

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

JS Fiddle Demo

Ответ 7

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

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

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

Ответ 8

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);
   }
  })
}

Ответ 9

$("input[name=mygroup]").val([5]);

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

Ответ 10

$('input[name="mygroup"]').val([5])