Для этого можно использовать MutationObserver API .
Зарегистрировать функцию обратного вызова, которая будет работать с изменяющимся атрибутом.
const input = document.getElementById('name');
const observer = new MutationObserver(list => {
console.log("New Value: ", list[0].target.value);
})
observer.observe(input, {
attributes: true,
childList: false,
subtree: false
});
function changeIt() {
const randomString = Math.random() >= 0.5 ? "one" : "two";
input.setAttribute("value", randomString);
input.value = randomString;
}
<input placeholder="Enter some text" name="name" id="name" />
<button onclick='changeIt()'>Push me
</button>
Вам нужно будет использовать setAttribute()
, и вам нужно будет установить свойство value
элемента Input, чтобы синхронизировать его с атрибутом.(как видно из функции changeIt()
.