Какое изменение свойства HTMLElement генерирует DOMAttrModified?

У меня есть вопрос о DOMAttrModified. Какие изменения в свойствах элемента HTML инициируют событие DOMAttrModified (особенно интересует Firefox, но может также подойти ответ, применимый к другим браузерам)?

У меня есть следующий тестовый пример:

        var elem = document.createElement('input');
        document.body.appendChild(elem);

        elem.id    = 'inputId';      // triggers DOMAttrModified
        elem.type  = 'text';         // triggers DOMAttrModified
        elem.value = 'inputValue';   // DOES NOT trigger DOMAttrModified
        elem.lang  = 'en';           // triggers DOMAttrModified

Если я изменю elem.value на elem.defaultValue, то DOMAttrModified срабатывает. Есть ли где-нибудь исчерпывающий список? До сих пор я обнаружил, что HTMLInputElement'value' и 'флажок' и свойство HTMLOptionElement'selected' не вызывают триггера DOMAttrModified. Есть ли другие?

Ответ в визуальных атрибутах DOMAttrModified, похоже, НЕ является полностью правильным, так как "значение" также является атрибутом.

Спасибо Сунил

2 ответа

Решение

ДОМ value свойство не меняет HTML value атрибут разметки. ДОМ defaultValue делает. DOMAttrModified срабатывает при изменении атрибутов разметки и т. д. setAttribute/removeAttribute вызовы и любой набор свойств, который изменяет атрибут.

Также обратите внимание, что события DOMAttrModified не будут запускаться, если установлен атрибут "disabled". Так что, если ваше мероприятие не стреляет, это может быть причиной. Это также относится к событию onPropertyChange только для IE.

Другие вопросы по тегам