Il codice riportato di seguito funziona perfettamente in Chrome, Firefox, su IPhone e persino nei browser di terze parti su Android. Tuttavia, quando viene eseguito all'interno degli eventi chiave del browser nativo per caratteri speciali come Å, Ä e Ö sulla mia tastiera svedese non vengono semplicemente attivati.Nessun evento di pressione tasto per determinati tasti nel browser Android
L'esempio dovrebbe consentire all'utente di inserire un singolo carattere alla volta. Funziona come un incantesimo, a meno che non abbia premuto tasti Android come Å, Ä o Ö per cui posso inserire qualsiasi numero di caratteri.
Ecco un jsFiddle per chiunque desideri provarlo: http://jsfiddle.net/x7H6f/. Se non hai tasti speciali come quelli svedesi stampati sulla tastiera, caratteri come é (hold E) dovrebbero fare il "trucco".
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Key Event test</title>
</head>
<body>
<input type="text" id="a" name="test" />
<script>
document.getElementById("a").onkeypress = function(e) {
e = e || window.event;
var k = e.keyCode || e.which;
this.value = String.fromCharCode(k);
return false;
}
</script>
</body>
</html>
E no, keydown e keyup non funzionano neanche. Mi sono perso qualcosa o si tratta di un bug? È terribilmente fastidioso quando si sviluppano app svedesi in PhoneGap!
Grazie!
EDIT: Come Manor dice nella sua risposta, l'evento input
può essere utilizzato. Ecco un violino che dimostra le differenze tra gli eventi keypress
, input
e change
: http://jsfiddle.net/Qxd76/ (utilizzare http://jsfiddle.net/Qxd76/show per visualizzare il risultato su uno smartphone).
Im vivendo la stessa cosa, questo è probabilmente un bug in Android? – rapadura
Sono sicuro che sia un bug nel browser nativo per Android, che è ciò che le visualizzazioni web utilizzano. Non l'ho confermato, ma ho il sospetto che dovrebbe essere risolto dopo la versione 4, dopo aver cambiato il browser in Chrome dopo? – Zut
@rapadura @Zut L'evento '' input'' non restituisce '' keyCode'' o '' which'' o '' charCode'' .. – Kosmetika