Estoy tratando de deshabilitar el ingreso de todos los demás caracteres en el ingreso de texto.
Dado que para obtener el $
tiene que pulsar la tecla cambio y la tecla . No estoy seguro de cómo obtendrías el código de tecla para algo así?
Estoy tratando de deshabilitar el ingreso de todos los demás caracteres en el ingreso de texto.
Dado que para obtener el $
tiene que pulsar la tecla cambio y la tecla . No estoy seguro de cómo obtendrías el código de tecla para algo así?
Los códigos clave se refieren solo a las teclas. $
es un personaje, logrado a través de dos llaves, Shift y 4. No existe un código clave explícitamente $
cuando se utiliza onkeydown
Editar: Se señaló por Edward que onkeypress
utiliza combinaciones de teclas, y tiene código clave de para combinaciones. Aprenda algo nuevo todos los días :)
Here's some code, editado del ejemplo onkeydown
proporcionado por el MDN, para detectar códigos de tecla.
Here's the fiddle actualizado para ser compatible con Firefox, con la ayuda de this S.O. post. La solución de JQuery también funciona, si te balanceas de esa manera.
El violín de su edición da este resultado en firefox12: 'keyCode para la tecla presionada: 0' (en cualquier tecla que presione ..) – GitaarLAB
@GitaarLAB Qué extraño. Funciona en IE y Chrome. No puedo imaginarme que Firefox no admitiera 'onkeypress', aunque cambiarlo por' onkeydown' funciona en Firefox. –
Mira [este S.O. hilo de información sobre onkeypress en Firefox] (http://stackoverflow.com/questions/4496910/onkeypress-event-not-working-in-firefox) Duda es el único también –
Entonces NO lo use de esta manera para resolver su problema: ya que no puede predecir que cada distribución de teclado siempre tendrá $ -sign ingresado como shift + 4.
¡Aún puede obtener el código clave 4 y comprobar si se presionó shift, pero no puede estar seguro de esto!
Así sería mejor simplemente reemplazar todos los caracteres ilegales en sus campos (antes de enviar los datos). Piensa: str.replace()
¡También puedes verificar tu conjunto de caracteres ilegales en el evento onkeyup del cuadro de entrada, reemplazando efectivamente todos los caracteres ilegales mientras escribes!
Me gusta: onkeyup="this.value.replace(/[your illegal characters]/gi, '')"
Eso debería hacer lo que quiera.
Tenga en cuenta: NUNCA debe confiar en la entrada del navegador, y todavía debe filtrar esta entrada en su script de recepción!
¡Buena suerte!
No hay onkeydown
código clave, como se ha dicho anteriormente por ngmiceli
Aunque, existe onkeypress
código clave y es igual a 36
.
+1 ¡Gracias por eso! –
no existe un código clave para $
, ya que no es una clave válida - tiene que acceder a través de algún tipo de palanca de cambios.
Por lo general, debe realizar una comprobación para ver si la palanca de cambios estaba activa, y escuchar el evento keypress
en la clave correspondiente.Algo como esto para un teclado QWERTY en su instancia:
var shiftPressed = false;
$(window).keydown(function(e) {
if(e.which == 16) { shiftPressed = true; }
if(e.which == 52 && shiftPressed)
{
// Do whatever here...
}
});
$(window).keyup(function(e) {
if(e.which == 16) { shiftPressed = false; }
});
onkeypress - El código de caracteres Unicode es: 36
onkeydown - La Llave de código Unicode es: 52
duplicado posible de [¿Cuáles son los JavaScript KeyCodes?] (Http://stackoverflow.com/questions/5603195/what-are-the-javascript-keycodes) –