Свойства
Кроме атрибутов также есть свойства элементов, к ним относятся selectedIndex, tagName, nodeName, nodeType, ownerDocument, defaultChecked и defaultSelected. Ну, вроде бы, список невелик, можно и запомнить. Для работы со свойствами используем методы из семейства prop():
получение значения свойства
установка значения свойства
установка нескольких значений
используя функцию обратного вызова
index это порядковый номер элемента в выборке
value — текущее значение атрибута
удаление свойства (скорей всего, никогда не понадобится)
А теперь выключите музыку, и запомните следующее – для отключения элементов формы и для проверки/изменения состояния чекбоксов мы всегда используем метод prop(), пусть вас не смущает наличие одноименных атрибутов в HTML (это я про «disabled» и «checked»), используем prop() и точка.
Давайте на примере:
Посмотрите, как работает система без нашего вмешательства — кликните чекбокс, селектбокс, попробуйте отправить форму.
Теперь приступим к серии экспериментов (не забудьте обновить страничку):
Ставим галочку на чекбоксе посредством метода
attr():Теперь снимите галочку мышкой — значение
attr()осталось без изменений, значениеprop()изменилосьПопробуйте ещё раз поставить галочку, используя метод
attr()
Следующий эксперимент:
Поставьте мышкой галочку на чекбоксе
Снимите галочку — значение
attr()не изменяетсяПопробуйте установить значение посредством вызова:
В данном эксперименте интересен следующий момент: вызов метода attr("checked", "checked") не срабатывает после того, как пользователь изменял статус чекбокса
Ну и ещё один эксперимент со вторым чекбоксом:
Удаляем галочку:
Ставим галочку:
Опять удаляем галочку, используя метод
attr()Повторяем до упаду
Работает — не трожь, мышкой всё сломаете :)
Сравните с поведением метода prop():
Удаляем галочку:
Ставим галочку:
Можем кликать мышкой по чекбоксу и повторять предыдущие пункты в произвольном порядке, всё будет работать как часы
Надеюсь, я достаточно наглядно дал понять, когда надо использовать
attr(), а когдаprop()
Это ещё не всё, у нас же есть ещё свойство disabled! Но не волнуйтесь, его поведение более предсказуемо, т.к. пользователь не может вмешиваться в его состояние:
Включаем радио-кнопку:
Выключаем:
Повторяем
Аналогичное поведение при использовании метода prop():
Включаем:
Выключаем:
Повторяем
Ну, как бы, можно использовать
attr(), но нет!
Last updated