Domanda

ho bisogno di rilevare l'id dell'elemento che ha generato un evento onchange.

Questo lavoro di codice nella maggior parte dei browser moderni :

<input type="text" onchange="return onchange_handler(event);"

function onchange_handler(event) {
    var id = event.target ? event.target.id : event.srcElement.id;
    ...
    return false;
}

Ma non funziona in IE mobile .

Ho provato il seguente codice, e almeno è licenziato l'evento e la funzione del gestore viene chiamata, ma window.event non è disponibile quando gestore eventi viene chiamato:

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

C'è un modo per ottenere un riferimento alla manifestazione sparato? O un approccio alternativo per conoscere l'ID dell'elemento che ha causato l'evento.

È stato utile?

Soluzione

Una soluzione sarebbe quella di passare l'elemento al callback: (non testata)

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

function onchange_handler(element) {
    var id = element.id;
    ...
    return false;
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top