У меня есть переключатели в HTML, как это:
<td>
<input id="radio1" type="radio" name="correctAnswer" value="1">1</input>
<input id="radio2" type="radio" name="correctAnswer" value="2">2</input>
<input id="radio3" type="radio" name="correctAnswer" value="3">3</input>
<input id="radio4" type="radio" name="correctAnswer" value="4">4</input>
</td>
Это в теге формы, и когда пользователь отправляет форму, я хочу вернуть все переключатели к значениям по умолчанию. То есть ни один из них не проверен.
У меня есть этот код, но он дает ошибку, говоря [0] is null or not an object
$('input[@name="correctAnswer"]')[0].checked = false;
$('input[@name="correctAnswer"]')[1].checked = false;
$('input[@name="correctAnswer"]')[2].checked = false;
$('input[@name="correctAnswer"]')[3].checked = false;
Я делаю это в IE 6.
#(selector).prop('checked',true);
произойдет сбой, когда последует попытка установить для следующего переключателя в той же группе статус непроверенного. Хитрость заключается в том, чтобы установить переключатель только в отмеченное состояние и позволить группе переключателей делать то, что делает (снимите флажок с других ...) . Кроме того, вызов$(selector).click();
работает, и будет запускать любые связанные события.Ответы:
В версиях jQuery до 1.6 используют:
В версиях jQuery после 1.6 вы должны использовать:
но если вы используете 1.6.1+, вы можете использовать первую форму (см. примечание 2 ниже).
Примечание 1: важно, чтобы второй аргумент был false, а не «false», поскольку «false» не является ложным значением. т.е.
Примечание 2: По состоянию на JQuery 1.6.0, в настоящее время существует два подобных методов,
.attr
и.prop
что делают две связанные , но немного разные вещи. Если в данном конкретном случае приведенный выше совет работает, если вы используете 1.6.1+. Выше не будет работать с 1.6.0, если вы используете 1.6.0, вы должны обновить. Если вам нужны подробности, продолжайте читать.Подробности: При работе с прямыми элементами HTML DOM, есть свойства , прикрепленные к DOM элементу (
checked
,type
,value
, и т.д.) , которые обеспечивают интерфейс с управлением состоянием страницы HTML. Существует также интерфейс.getAttribute
/,.setAttribute
который обеспечивает доступ к значениям атрибута HTML, как это предусмотрено в HTML. До 1.6 jQuery размыл различие, предоставив один метод.attr
для доступа к обоим типам значений. JQuery 1.6+ предоставляет два метода,.attr
и.prop
чтобы различать эти ситуации..prop
позволяет установить свойство для элемента DOM, а также.attr
позволяет установить значение атрибута HTML. Если вы работаете с обычным DOM и устанавливаете свойство selectedelem.checked
, наtrue
илиfalse
вы изменяете текущее значение (то, что видит пользователь), и возвращаемое значение отслеживает состояние страницы.elem.getAttribute('checked')
однако возвращает только начальное состояние (и возвращает'checked'
илиundefined
зависит от исходного состояния из HTML). В 1.6.1+ использование.attr('checked', false)
делает и то,elem.removeAttribute('checked')
и другое,elem.checked = false
так как изменение вызвало множество проблем обратной совместимости, и он не может точно сказать, хотите ли вы установить атрибут HTML или свойство DOM. Более подробную информацию смотрите в документации по .prop .источник
Лучший способ установить состояние радиокнопок в jquery:
HTML:
Код Jquery (1.4+) для предварительного выбора одной кнопки:
В коде Jquery 1.6+ предпочтительным является метод .prop ():
Чтобы отменить выбор кнопок:
источник
Ваша проблема в том, что селектор атрибута не начинается с
@
.Попробуй это:
источник
источник
Наконец, после многих тестов, я думаю, что наиболее удобный и эффективный способ настройки:
Обновление требуется с объектом JQueryUI.
Получить значение легко:
Протестировано с JQuery 1.6.1, JQuery UI 1.8.
источник
Я знаю, что это старое и что это немного не по теме, но предположим, что вы хотели снять отметку только с определенных переключателей в коллекции:
И если вы имеете дело со списком радиокнопок, вы можете использовать селектор: флажок, чтобы получить только тот, который вам нужен.
источник
Набор радиокнопок проверен через jquery:
JQuery код:
источник
Если вы хотите очистить все переключатели в DOM:
$('input[type=radio]').prop('checked',false);
источник
источник
Хотя prop изменил проверенный статус, но изменения также показывают, что в форме.
источник
Где у вас есть:
<input type="radio" name="enddate" value="1" />
После значения = "1" вы также можете просто добавить
unchecked =" false" />
Линия тогда будет:
источник
Установите все переключатели обратно на значения по умолчанию:
источник
Почему бы вам не сделать:
источник