if(characterCode == 13)
{
return false; // returning false will prevent the event from bubbling up.
}
else
{
return true;
}
Ok, quindi immagina di avere la seguente casella di testo in un modulo:
<input id="scriptBox" type="text" onkeypress="return runScript(event)" />
Per eseguire uno script "definito dall'utente" da questa casella di testo quando viene premuto il tasto Invio e non è necessario inviare il modulo, ecco un codice di esempio . Si noti che questa funzione non esegue alcun controllo degli errori e molto probabilmente funzionerà solo in IE. Per fare questo, hai bisogno di una soluzione più solida, ma otterrai l'idea generale.
function runScript(e) {
//See notes about 'which' and 'key'
if (e.keyCode == 13) {
var tb = document.getElementById("scriptBox");
eval(tb.value);
return false;
}
}
la restituzione del valore della funzione avviserà il gestore dell'evento di non creare più bolle sull'evento e impedirà che l'evento keypress venga ulteriormente gestito.
NOTA:
È stato sottolineato che orakeyCode
è deprecato . Anche la prossima migliore alternativa which
è stata deprecata .
Sfortunatamente lo standard preferito key
, che è ampiamente supportato dai browser moderni, ha un comportamento instabile in IE e Edge . Qualunque cosa più vecchia di IE11 avrebbe comunque bisogno di un polyfill .
Inoltre, mentre l'avvertimento deprecato è alquanto inquietante keyCode
e which
, rimuoverli rappresenterebbe un enorme cambiamento decisivo verso un numero imprecisato di siti Web legacy. Per questo motivo, è improbabile che vadano ovunque in qualunque momento presto.