Я пытаюсь установить переключатель. Я хочу установить его, используя значение или идентификатор.
Это то, что я пробовал.
$('input:radio[name=cols]'+" #"+newcol).attr('checked',true);
newcol
идентификатор переключателя.
Возможно небольшое редактирование в порядке.
Есть два комплекта радиобоксов: один с cols, а другой с рядами. Так что я вижу смысл в том, чтобы не использовать идентификаторы. Виноват. Итак, я имею в качестве примера:
<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>
с идентификатором удален, и мне нужно установить правильный.
jquery
radio-button
mike628
источник
источник
Ответы:
Ваш селектор ищет потомка
input:radio[name=cols]
элемента с идентификаторомnewcol
(а также значением этой переменной).Попробуйте вместо этого (так как вы выбираете по идентификатору в любом случае):
Вот демо: http://jsfiddle.net/jasper/n8CdM/1/
Также, начиная с jQuery 1.6, предпочтительный метод изменения свойства
.prop()
: http://api.jquery.com/propисточник
prop
противattr
.attr
устарел за свойства и больше не работает в jQuery 2.0))Я нашел ответ здесь:
https://web.archive.org/web/20160421163524/http://vijayt.com/Post/Set-RadioButton-value-using-jQuery
По сути, если вы хотите проверить одну радиокнопку, вы ДОЛЖНЫ передать значение в виде массива:
источник
В вашем селекторе вы, похоже, пытаетесь получить какой-то вложенный элемент вашей радиокнопки с заданным идентификатором. Если вы хотите проверить переключатель, вы должны выбрать этот переключатель в селекторе, а не что-то другое:
Это предполагает, что в вашей разметке есть следующий переключатель:
Если у вашей радиокнопки был идентификатор:
Вы можете напрямую использовать селектор идентификатора:
источник
cols
именем, тогда$('input:radio[name="cols"]').attr('checked', 'checked');
выберет только последний. Он будет запускать код для каждого, но каждый раз, когда вы устанавливаетеchecked
свойство, ранее установленный элемент сбрасывается. Вот демо: jsfiddle.net/jasper/n8CdM/2Вы можете попробовать следующий код:
Это установит атрибут, проверенный для радио столбцов и значение, как указано.
источник
...the most important concept to remember about the checked attribute is that it does not correspond to the checked property.
Источник: api.jquery.com/attrЗачем вам нужно
'input:radio[name=cols]'
. Не знаю ваш HTML, но при условии, что идентификаторы уникальны, вы можете просто сделать это.источник
Попробуй это:
У меня были проблемы
attr("checked", true)
, поэтому я склонен использовать вышеупомянутое.Кроме того, если у вас есть идентификатор, то вам не нужны эти другие вещи для выбора. Идентификатор уникален.
источник
checked="checked"
атрибут, и браузер покажет его как отмеченный, затем выберите B, и произойдет то же самое. Теперь, когда вы снова выберите A, у него уже будетchecked="checked"
атрибут, и ничего не изменится. В качестве побочного эффекта этого B будет по-прежнему выбран, а не A.Так
newcol
как это идентификатор радиокнопки, вы можете просто использовать его, как показано ниже.источник
Использование
.filter()
также работает, и является гибким для идентификатора, значения, имени:$('input[name="cols"]').filter("[value='Site']").attr('checked', true);
(видно в этом блоге )
источник
Объединяя предыдущие ответы:
источник
Вы можете просто использовать:
источник
Выбранный ответ работает в этом случае.
Но вопрос был в том, чтобы найти элемент, основанный на радиогруппе и динамическом идентификаторе, и ответ также может оставить отображаемую радиокнопку без изменений.
Эта строка выбирает именно то, что было запрошено, а также показывает изменения на экране.
источник