javascript — событие `change` не вызывается, когда` input` изменяется программными методами

Событие `change` не вызывается, когда` input` изменяется программными методами

У меня есть этот пример кода:

 //It's my code editable document.querySelector('#word').addEventListener('change', function() { document.querySelector('#result').innerHTML = this.value   "!"; }); //------------------------- //You should not make any changes to this section of the code below, // as it is an instance and may be similar to another program and elsewhere // that cannot be identified. document.querySelector('#fill').addEventListener('click', function() { document.querySelector('#word').value = "sample text"; }); 
 {amp}lt;input id="word"{amp}gt; {amp}lt;button id="fill"{amp}gt;Change it!{amp}lt;/button{amp}gt; {amp}lt;div id="result"{amp}gt;{amp}lt;/div{amp}gt; 

зеркальный код: https://jsfiddle.net/NabiKAZ/t7ps4exj/

Когда я изменяю значение элемента input помощью клавиатуры или мыши, change события работает хорошо. Но когда я использую любой программный метод, это не работает.

Например, когда я нажимаю button в этом примере кода, значения будут изменены, но событие change ввода не вызывается.

Примечание. Предполагается, что вам не нужно вносить какие-либо изменения в функцию щелчка события кнопки, потому что эта кнопка здесь только пример, и, возможно, входное значение будет изменено любым способом в любое время и в любом случае!

Каково ваше решение для этой проблемы?

Редакция:
Примечание 2: я добавляю небольшой кусочек кода в качестве Tampermonkey в большое веб-приложение, которое я не могу изменить во всем коде, доступном во всей программе. Эта программа может изменить значение этого поля input в любое время и любым способом, и мне нужно понять его по событию change или любым лучшим методам.

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector