X

JavaScript: Повесить событие на изменение значения в Input-е

Столкнулся с проблемой, когда после загрузки страницы некий JS код менял значение в одном из скрытых полей формы. Мне потребовалось отыскать этот JS. К сожалению DevTools Chrome-а не умеет (или я не знаю об этом), ставить breakpoint-ы на изменение данных. Поэтому я решил определить функцию которая будет отлавливать любые попытки изменить данные и внутри нее определить breakpoint. Немного погуглив, я нашел код который мне подошел..

<input id="lala" type="text" />
<script>
    var inp = document.getElementById( 'lala' );

    Object.defineProperty( inp, "value", {
        configurable: true,
        enumerable: true,
        set: function( value ) {
            alert( "Попытка назначить: " + value );
            this.setAttribute( "value", value );
        },
        get: function() {
            return this.getAttribute( "value" );
        }
    });
 
    inp.value = "test";

    alert( inp.value );
</script>

Источник: https://javascript.ru/forum/misc/30240-povesit-setter-na-input-value.html

Категории: JavaScript