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.
Ti segnalo queste due campagne uscite in questi giorni.
Per l’esattezza una è on air, l’altra è stata presentata in anteprima e uscità a settembre:
EMMI. DRINK DIFFERENT. [http://www.lucabartoli.info/bblog/?p=912]
SUPERHERO ’07 – CLEAN UP THE WORLD. [http://www.lucabartoli.info/bblog/?p=977]
Mi piacerebbe leggere cosa ne pensi.
Grazie, a presto
Non capisco proprio cosa c’entrino con il post che ho scritto!