В версиях от jQuery до использования 1.6:
$('input[name="correctAnswer"]').attr('checked', false);
В версиях JQuery после 1.6 вы должны использовать:
$('input[name="correctAnswer"]').prop('checked', false);
, но если вы используете 1.6.1 вы можете использовать первую форму (смотрите примечание 2 ниже).
Примечание 1: важно, что второй аргумент будет ложным, а не «ложь», так как«ложь» не falsy значение. т.е.
if ("false") {
alert("Truthy value. You will see an alert");
}
Примечание 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 и устанавливаете свойство checked, elem.checked
, до true
или false
вы изменяете текущее значение (то, что видит пользователь) и возвращаемое значение отслеживает состояние на странице. elem.getAttribute('checked')
однако возвращает только исходное состояние (и возвращает 'checked'
или undefined
в зависимости от исходного состояния из HTML). В версии 1.6.1+ с использованием .attr('checked', false)
оба elem.removeAttribute('checked')
и elem.checked = false
, так как изменение вызвало много проблем с обратной совместимостью, и он не может действительно сказать, хотите ли вы установить атрибут HTML или свойство DOM. Дополнительную информацию см. В documentation for .prop.
Если @ lambacck Ответит не работает для вас увидеть ошибку трекера на сайте JQuery [http://bugs.jquery.com/ticket/10910]. Если вы (как и я ...) прокручивали набор радиокнопок, чтобы попытаться сбросить все значения по умолчанию, '# (selector) .prop ('checked', true);' fail, когда он следует пытаясь установить следующий переключатель в той же группе на непроверенный статус. Хитрость заключается в том, чтобы только установить переключатель в состояние «проверено» и позволить группе переключателей делать то, что он делает (снимите отметку с других). _. Кроме того, вызов '$ (селектор) .click();' работает и будет запускать любые ассоциированные события. –