El código siguiente funciona perfectamente en Chrome, Firefox, en el iPhone e incluso en navegadores de terceros en Android. Sin embargo, cuando se ejecuta dentro de la clave del navegador nativo, los eventos para caracteres especiales como Å, Ä y Ö en mi teclado sueco simplemente no se activan.Sin eventos de pulsación de teclas para ciertas teclas en el navegador de Android
El ejemplo solo debe permitir al usuario ingresar un solo carácter a la vez. Funciona como un amuleto, a menos que yo presione en Android teclas como Å, Ä o Ö para las cuales puedo ingresar cualquier cantidad de caracteres.
Aquí está un jsFiddle para quien desee probarlo: http://jsfiddle.net/x7H6f/. Si no tiene teclas especiales como las suecas impresas en su teclado, los caracteres como é (mantener E) deberían hacer el "truco".
<!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>
Y no, la combinación de teclas y la tecla no funcionan tampoco. ¿Me perdí algo, o es un error? ¡Es terriblemente molesto cuando se desarrollan aplicaciones suecas en PhoneGap!
Gracias!
EDIT: Como dice Manor en su respuesta, el evento input
se puede utilizar. Aquí hay un violín que muestra las diferencias entre los eventos keypress
, input
y change
: http://jsfiddle.net/Qxd76/ (use http://jsfiddle.net/Qxd76/show para ver el resultado en un teléfono inteligente).
Im experimentando la misma cosa, esto es probablemente un error en Android? – rapadura
Estoy decentemente seguro de que es un error en el navegador nativo para Android, que es lo que utilizan las vistas de web. No lo he confirmado, pero sospecho que debería solucionarse después de la versión 4, ya que cambiaron el navegador a Chrome después de eso. – Zut
@rapadura @Zut '' input'' event no devuelve '' keyCode'' o '' which'' o '' charCode'' .. – Kosmetika