Почему я борюсь с этим?
У меня есть значение: 5
Как проверить переключатель группы "mygroup" со значением 5?
$("input[name=mygroup]").val(5); // doesn't work?
Почему я борюсь с этим?
У меня есть значение: 5
Как проверить переключатель группы "mygroup" со значением 5?
$("input[name=mygroup]").val(5); // doesn't work?
С помощью селектора атрибутов вы можете выбрать элемент ввода с соответствующим значением. Затем вы должны явно установить атрибут, используя .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');
Есть лучший способ проверить радио и флажок; вам нужно передать массив значений в метод 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/
Попробуйте следующее:
$('input:radio[name="mygroup"][value="5"]').attr('checked',true);
$("input[name='mygroup'][value='5']").attr("checked", true);
При изменении значения атрибута, как указано выше, событие change
не запускается, поэтому, если необходимо по некоторым причинам, вы можете вызвать его таким образом
$('input[name=video_radio][value="' + r.data.video_radio + '"]')
.prop('checked', true)
.trigger('change');
$("input[name='RadioTest'][value='2']").prop('checked', true);
Или вы можете просто написать для него атрибут value:
$(':radio[value=<yourvalue>]').attr('checked',true);
Это работает для меня.
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]);
Вот документ JQuery, который объясняет, как это работает: http://api.jquery.com/val/#val-value
$('input[name="mygroup"]').val([5])