Проблема в том, использовать ли свойство или атрибут.
не нашли это задокументированным, поэтому выполнили несколько тестов (хром 12):
свойство <=> атрибут
accept, alt, formMethod, formTarget, id, name, placeholder, type, maxlength, size form: method, name, target, action, enctype
] свойство <= attribute
value, autofocus, checked, disabled, formNoValidate, multiple, required
свойство => атрибут
indeterminate
propetry>
defaultValue, validity, defaultChecked, readOnly form: novalidate
задан случайный атрибут / значение для применения к элементу, вот лучшие правила, которые я придумал (измененные согласно Тиму Дауну (спасибо!) Ниже):
если класс, напишите с помощью classList
, читать с помощью className
свойство
, если форма, всегда читать с использованием атрибута (и будьте осторожны)
if typeof element [propName] ! = "undefined"
, используйте свойство, то есть element [attr] = val
, в противном случае используйте атрибут, то есть element.setAttribute (attr, val)
это даже близко к правде?
примечание: интересно, если у вас есть форма с элементом с именем «novalidate», возможно ли вообще получить доступ к свойству novalidate
самой формы?