Elepsis Eclipse
Гений
(64033)
4 года назад
attr() — это то, что запишется конкретно в HTML-коде (атрибут)
prop() — свойство (property) в объекте HTML-элемента.
Часто изменение атрибута автоматически меняет и значение свойства, и наоборот. Часто, но не везде.
И, что важнее, некоторые фишки в HTML требуют всего лишь присутствие атрибута, но игнорируют его значение. Например для того же checkbox, если написать
<input type="checkbox" checked="false">
Он всё равно будет чекнутым.
Для этого аффтар договаривается везде использовать prop.
<<
А теперь выключите музыку, и запомните следующее – для отключения
элементов формы, и для проверки/изменения состояния чекбоксов мы
всегда используем метод «.prop()», пусть вас не смущает наличие
одноименных атрибутов в HTML (это я про «disabled» и «checked»), используем
«.prop()» и точка (наглядный пример property.html).
>>
Почему именно так? Я попробовал сделать input disabled и checkbox checked через attr - все получилось. Так в чем же проблема?
Вот код, если что:
$('.some-input').attr('disabled', true);
$('.some-checkbox').attr('checked', true);