переключатель jQuery set


Я пытаюсь установить переключатель. Я хочу установить его с помощью значения или идентификатора.

это то, что я пробовал.

$('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>

с идентификатором удалены, и я нужно установить правильный.

11 116

11 ответов:

ваш селектор ищет потомка a input:radio[name=cols] элемент, который имеет идентификатор newcol (ну значение этой переменной).

попробуйте вместо этого (так как вы все равно выбираете по ID):

$('#' + newcol).prop('checked',true);

вот демо:http://jsfiddle.net/jasper/n8CdM/1/

кроме того, с jQuery 1.6 perferred метод изменения свойства является .prop(): http://api.jquery.com/prop

Я нашел ответ here:
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']);

в селекторе вы, кажется, пытаетесь извлечь какой-то вложенный элемент вашего переключателя с заданным идентификатором. Если вы хотите проверить переключатель, выберите этот переключатель в селекторе, а не что-то другое:

$('input:radio[name="cols"]').attr('checked', 'checked');

это предполагает, что у вас есть следующий переключатель в разметке:

<input type="radio" name="cols" value="1" />

если ваш переключатель имел идентификатор:

<input type="radio" name="cols" value="1" id="myradio" />

вы можете напрямую использовать селектор идентификаторов:

$('#myradio').attr('checked', 'checked');

вы можете попробовать следующий код:

$("input[name=cols][value=" + value + "]").attr('checked', 'checked');

это установит атрибут, проверенный для радиоколонок и значения, как указано.

зачем вам это нужно 'input:radio[name=cols]'. Не знаю вашего html, но предполагая, что идентификаторы уникальны, вы можете просто сделать это.

$('#'+newcol).prop('checked', true);

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

$("#" + newcol).attr("checked", "checked");

у меня были проблемы с attr("checked", true), поэтому я предпочитаю использовать выше.

также, если у вас есть ID, то вам не нужно, что другие вещи для выбора. Идентификатор является уникальным.

С newcol это идентификатор переключателя, вы можете просто использовать его, как показано ниже.

$("#"+newcol).attr('checked',true);

используя .filter() также работает, и гибко для id, значения, имени:

$('input[name="cols"]').filter("[value='Site']").attr('checked', true);

(видел на этот блог)

вы можете просто использовать:

$("input[name='cols']").click();

выбранный ответ работает в этом случае.

но вопрос был о поиске элемента на основе radiogroup и dynamic id, и ответ также может оставить отображаемый переключатель без изменений.

эта строка делает выбор именно то, что было предложено при отображении изменения на экране, а также.

$('input:radio[name=cols][id='+ newcol +']').click();

объединение предыдущих ответов:

$('input[name="cols"]').filter("[value='Site']").click();