В большинстве случаев вы не хотите, чтобы событие запускалось при изменении значения с помощью кода. В тех случаях, когда вы это делаете, вы можете запустить искусственное событие в современных браузерах через dispatchEvent
. Подробнее здесь .
Итак, в вашем конкретном примере:
input.value = "Another example";
var event = document.createEvent("UIEvents"); // See update below
event.initUIEvent("change", true, true); // See update below
input.dispatchEvent(event);
Живая демоверсия
Обновление: Как и Бенджамин отметил , так как выше было написано, initUIEvent
был заменен на UIEvent
конструктор , так что это будет :
input.value = "Another example";
var event = new UIEvent("change", {
"view": window,
"bubbles": true,
"cancelable": true
});
input.dispatchEvent(event);
Демонстрационная версия
С другой стороны, вы всегда можете просто вызвать любую функцию, которую вы привязали к событию change
напрямую, что обычно и делается. Но иногда вы хотите использовать реальные события (например, при использовании шаблона наблюдателя) и убедиться, что каждый, кто прослушивает изменение, уведомляется.