В версиях jQuery до 1.6 используют:
$('input[name="correctAnswer"]').attr('checked', false);
В версиях jQuery после 1.6 вы должны использовать:
$('input[name="correctAnswer"]').prop('checked', false);
но если вы используете 1.6.1+, вы можете использовать первую форму (см. примечание 2 ниже).
Примечание 1: важно, чтобы второй аргумент был false, а не «false», поскольку «false» не является ложным значением. т.е.
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 и устанавливаете свойство selected elem.checked, на trueили falseвы изменяете текущее значение (то, что видит пользователь), и возвращаемое значение отслеживает состояние страницы. elem.getAttribute('checked')однако возвращает только начальное состояние (и возвращает 'checked'или undefinedзависит от исходного состояния из HTML). В 1.6.1+ использование .attr('checked', false)делает и то, elem.removeAttribute('checked')и другое, elem.checked = falseтак как изменение вызвало множество проблем обратной совместимости, и он не может точно сказать, хотите ли вы установить атрибут HTML или свойство DOM. Более подробную информацию смотрите в документации по .prop .
#(selector).prop('checked',true);произойдет сбой, когда последует попытка установить для следующего переключателя в той же группе статус непроверенного. Хитрость заключается в том, чтобы установить переключатель только в отмеченное состояние и позволить группе переключателей делать то, что делает (снимите флажок с других ...) . Кроме того, вызов$(selector).click();работает, и будет запускать любые связанные события.