Sto tentando di eseguire la convalida delle informazioni rispetto all'input di testo utente nel processo dell'evento keydown
. Il motivo per cui sto tentando di convalidare nell'evento keydown
è perché non desidero visualizzare i caratteri quelli che sono considerati illegali nella casella input
all'inizio.JavaScript: convalida dell'input nell'evento keydown
La convalida sto scrivendo è come questo,
function validateUserInput(){
var code = this.event.keyCode;
if ((code<48||code>57) // numerical
&&code!==46 //delete
&&code!==8 //back space
&&code!==37 // <- arrow
&&code!==39) // -> arrow
{
this.event.preventDefault();
}
}
posso andare avanti in questo modo, però sto vedendo svantaggi di questa implementazione. Questi sono, per esempio:
- La dichiarazione condizionale diventa più lunga e più lunga quando metto più condizioni da esaminare.
keyCodes
può essere diverso dai browser.- Devo controllare non solo ciò che non è legale, ma anche controllare ciò che è eccezionale. Negli esempi precedenti, elimina, backspace e arrow le chiavi sono eccezionali.
Ma la funzione che non voglio perdere è quella di non visualizzare l'input nel textarea
a meno che non superi la convalida. (Nel caso in cui l'utente provi a inserire caratteri non validi nello textarea
, non dovrebbe apparire nulla). Per questo motivo non sto facendo una convalida sull'evento keyup
.
Quindi la mia domanda è:
- sono modi migliori lì per convalidare l'input in
keydown
evento di controllokeyCode
dakeyCode
? - Esistono altri modi per acquisire gli input utente diversi dall'evento
keydown
prima che il browser lo visualizzi? E un modo per mettere la convalida su di esso?
Grazie per l'aiuto in anticipo.
Sì, onkeypress ha funzionato bene. Molte grazie! – c4il