Capture JavaScript Event no IE Mobile
-
16-09-2019 - |
Pergunta
Preciso detectar o ID do elemento que gerou um evento de onchange.
Este código funciona na maioria navegadores modernos:
<input type="text" onchange="return onchange_handler(event);"
function onchange_handler(event) {
var id = event.target ? event.target.id : event.srcElement.id;
...
return false;
}
Mas não funciona em Ou seja, móvel.
Eu tentei o seguinte código e pelo menos o evento foi demitido e a função do manipulador é chamada, mas window.event
não está disponível quando o manipulador de eventos é chamado:
<input type="text" onchange="return onchange_handler();"
function onchange_handler() {
var event = window.event; // <= evaluated as UNDEFINED
var id = event.target ? event.target.id : event.srcElement.id;
...
return false;
}
Existe alguma maneira de obter uma referência ao evento demitido? Ou uma abordagem alternativa para conhecer o ID do elemento que causou o evento.
Solução
Uma solução alternativa seria passar o elemento para o retorno de chamada: (não testado)
<input type="text" id="mytextbox" onchange="return onchange_handler(this);"
function onchange_handler(element) {
var id = element.id;
...
return false;
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow