quinta-feira, 6 de dezembro de 2007

Levantando Eventos com JavaScript

Geralmente quando a gente precisa simular um evento click de um controle a gente trabalha com controle.click() e isso já é o suficiente. Porém me deparei com o seguinte problema: quando eu atribuia um valor para uma caixa de texto, eu queria que o evento onChange fosse levantado, coisa que não ocorre naturalmente. Depois de muito bater cabeça, achei o seguinte código:
if (document.all) // IE 5.5+
controle.fireEvent("onchange");
else{ // Firefox e outros..
var changeEvent = window.document.createEvent("HTMLEvents");
changeEvent.initEvent("change", false, true);
controle.dispatchEvent(changeEvent);
};

Para mais informações:

http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-eventgroupings-htmlevents

Nenhum comentário: