Вы можете использовать отличный event.simulate.js , чтобы сделать это. Этот скрипт зависит от библиотеки Prototype.js.
Если вы хотите этого, не полагаясь на внешнюю библиотеку, взгляните на функции fireEvent
и createEvent
. Простая демонстрация того, как вы могли бы реализовать это:
function triggerEvent(element, eventName)
{
if (document.createEvent)
{
var evt = document.createEvent('HTMLEvents');
evt.initEvent(eventName, true, true);
return element.dispatchEvent(evt);
}
if (element.fireEvent)
return element.fireEvent('on' + eventName);
}
triggerEvent(document.getElementById('myTextbox', 'change'));
Используя event.simululate.js, вы бы сделали это так:
Event.simulate('myTextbox', 'change');
Здесь был задан похожий вопрос: Инициировать событие с помощью Прототипа .
РЕДАКТИРОВАТЬ: хотя можно использовать document.getElementById('myTextbox').change()
, я бы не рекомендовал делать это, так как это делает ваш код менее гибким. При присоединении событий onChange к текстовому полю они не будут срабатывать при ручном вызове события change (). При использовании вышеуказанного метода события будут распространяться так же, как если бы это событие было инициировано пользователем.