Pregunta

necesito para detectar el identificador del elemento que genera un evento onchange.

Este código de trabajo en la mayoría de los 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;
}

Pero no funciona en IE Mobile .

He probado el código siguiente y, al menos, se dispara el evento y la función de controlador se llama, pero window.event no está disponible cuando se llama controlador de eventos:

<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;
}

¿Hay alguna manera de obtener una referencia al evento disparado? O un enfoque alternativo para conocer el id del elemento que causó el evento.

¿Fue útil?

Solución

Una solución sería pasar el elemento a la devolución de llamada: (no probado)

<input type="text" id="mytextbox" onchange="return onchange_handler(this);"

function onchange_handler(element) {
    var id = element.id;
    ...
    return false;
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top