Simulare onKeyDown su un Input

Come agganciare via JS ad un oggetto INPUT l’evento keypress, che in javascript non esiste.
Cioè come faccio a verificare che un utente sta scrivendo qualcosa in un determinato input senza scrivere la gestione evento direttamente sull’HTML ma in un HTML separato???

O meglio: se mettiamo <input onKeypress="..." /> funziona, ma se vogliamo tenere separati HTML e JS no!

 

Ecco un semplice codice esemplificativo:

<script language="javascript">
window.onload = function() {
//individuo elemento "qui";
x = document.getElementById("qui");

//procedura per la verifica del focus di un oggetto
x.focused = false;
x.onfocus = function(){
x.focused = true;
}
x.blur = function(){
x.focused = false;
}

//attivo l'handler su tutto il doc
document.onkeydown = register;
}
function register(e){
if (!e) e = window.event;
if (x.focused){
//è "x" l'elemento coinvolto
alert("hai premuto qualcosa su x: " + String.fromCharCode(e['keyCode']));
}

}
</script>
<form id="form1" name="form1" method="post" action="">
Non cliccare
<input type="text" id="qui" value="xxx" />
!!!
</form>

 

Il principio è quello di catturare l’evento keydown per l’intero documento (che esiste), verificare se è stato fatto all’interno del nostro campo input (con il focus), quindi fare qualcosa.

Loading Facebook Comments ...

2 pensieri su “Simulare onKeyDown su un Input

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *