JQuery set radio button
Я пытаюсь установить переключатель. Я хочу установить его, используя значение или идентификатор.
Это то, что я пробовал.
$('input:radio[name=cols]'+" #"+newcol).attr('checked',true);
newcol
- это идентификатор переключателя.
Возможно, небольшое редактирование в порядке.
Есть два набора радиобокнов, один с cols, а другой с строками. Поэтому я не вижу смысла использовать 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>
с удаленным идентификатором, и мне нужно установить правильный.
Ответы
Ответ 1
Ваш селектор ищет потомка элемента input:radio[name=cols]
, который имеет идентификатор newcol
(ну значение этой переменной).
Попробуйте это вместо этого (поскольку вы все равно выбираете по ID):
$('#' + newcol).prop('checked',true);
Вот демо: http://jsfiddle.net/jasper/n8CdM/1/
Кроме того, как и в jQuery 1.6, перфективный метод изменения свойства .prop()
: http://api.jquery.com/prop
Ответ 2
Я нашел ответ здесь:
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']);
Ответ 3
В вашем селекторе вы, кажется, пытаетесь извлечь некоторый вложенный элемент вашего переключателя с заданным идентификатором. Если вы хотите проверить переключатель, вы должны выбрать этот переключатель в селекторе, а не что-то еще:
$('input:radio[name="cols"]').attr('checked', 'checked');
Предполагается, что в вашей разметке есть следующий переключатель:
<input type="radio" name="cols" value="1" />
Если ваш переключатель имеет идентификатор:
<input type="radio" name="cols" value="1" id="myradio" />
вы можете напрямую использовать селектор id:
$('#myradio').attr('checked', 'checked');
Ответ 4
Вы можете попробовать следующий код:
$("input[name=cols][value=" + value + "]").attr('checked', 'checked');
Это установит атрибут, проверенный для столбцов радио и значения, как указано.
Ответ 5
Зачем вам нужно 'input:radio[name=cols]'
. Не знаете свой html, но, предполагая, что идентификаторы уникальны, вы можете просто сделать это.
$('#'+newcol).prop('checked', true);
Ответ 6
Попробуйте следующее:
$("#" + newcol).attr("checked", "checked");
У меня были проблемы с attr("checked", true)
, поэтому я предпочитаю использовать выше.
Кроме того, если у вас есть идентификатор, вам не нужен этот материал для выбора. Идентификатор уникален.
Ответ 7
Так как newcol
- это идентификатор переключателя, вы можете просто использовать его, как показано ниже.
$("#"+newcol).attr('checked',true);
Ответ 8
Использование .filter()
также работает и является гибким для id, value, name:
$('input[name="cols"]').filter("[value='Site']").attr('checked', true);
(см. этот блог)
Ответ 9
Вы можете просто использовать:
$("input[name='cols']").click();
Ответ 10
Выбранный ответ работает в этом случае.
Но вопрос состоял в том, чтобы найти элемент, основанный на радиогруппе и динамическом id, и ответ также может оставить отображаемый переключатель не затронут.
Эта строка выбирает именно то, что было предложено при показе изменения на экране.
$('input:radio[name=cols][id='+ newcol +']').click();