HTML говорит, что радио-кнопка отмечена, но javascript говорит, что это не - PullRequest
1 голос
/ 04 февраля 2011

Вот HTML-код для моей кнопки, в соответствии с Chrome:

<input checked="" type="radio" class="edit bindable" id="communicationAddresses[0].defaultAddress" name="EMAIL.default">

Когда я запускаю это в моей консоли javascript, вывод будет "false"

$("input[type=radio]:first").attr("checked")

ФактическийЭлемент пользовательского интерфейса явно не выбран.Когда я запускаю этот код, кнопка становится заметно выделенной:

$("input[type=radio]:first").attr("checked", true)

Оглядываясь назад на HTML в Chrome, я вижу почти то же самое, что видел раньше.Разница лишь в том, что «флажок» теперь находится в конце тега, а не в начале?

<input type="radio" class="edit bindable" id="communicationAddresses[0].defaultAddress" name="EMAIL.default" checked="">

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

Что здесь происходит?Почему кнопка не была явно выбрана для начала?

##### EDIT

Кнопка была выбрана для начала, но в итоге ее не выбрали из-за ошибки в каком-то коде привязки события, который я выполнял.

1 Ответ

3 голосов
/ 04 февраля 2011

Атрибут checked соответствует проверке по умолчанию флажка, а не его проверке current .

Другими словами, атрибут checked соответствуетdefaultChecked свойство javascript , а не свойство checked .

jQuery $("foo").attr("checked", true) устанавливает свойство checked javascript, но не влияет наchecked атрибут.

...