Primero comprendamos las diferencias entre cada evento
Keydown: ocurre cuando se presiona la tecla cuando el control tiene enfoque
KeyPress: ocurre cuando se presiona la tecla cuando el control tiene enfoque
Clave: ocurre cuando la clave se libera cuando el control tiene enfoque
1. KeyPress se usa principalmente para recibir caracteres ANSI como letras y números. Los procesos de Keydown y KeyUp Event generalmente pueden capturar todas las teclas en el teclado, excepto PRSCRN (aquí no se discuten las teclas especiales para teclados especiales.
2. KeyPress solo puede capturar un solo carácter, mientras que Keydown y KeyUp pueden capturar una combinación de claves.
3. KeyPress no muestra el estado físico del teclado (tecla de cambio), sino que solo pasa un carácter. KeyPress interpreta las formas de mayúsculas y minúsculas de cada carácter como diferentes códigos clave, es decir, como dos caracteres diferentes. Keydown y KeyUp no pueden determinar el tamaño de las letras de valor clave. Keydown y KeyUp interpretan la forma superior y minúscula de cada carácter con dos parámetros: KeyCode - Muestra la clave física (devuelve A y A como la misma clave) y Shift - indica el estado de la tecla Shift + y devuelve A o uno de a ellos.
5. KeyPress no distingue entre los caracteres numéricos del teclado y el teclado primario, mientras que el teclado y el teclado distinguen entre caracteres numéricos del teclado y el teclado primario.
6. Los eventos de tecla y clave ocurren cuando (Keydown) o la liberación (KeyUp) una clave. Dado que las teclas del teclado generalmente se alejan inmediatamente (esto es diferente del mouse), no hay mucha diferencia entre cuáles de estos dos eventos. Además, hay otra diferencia entre los otros dos: para juzgar el estado modificado de la clave, se debe usar.
Podemos usar el evento Keydown para bloquear la entrada del usuario, por ejemplo, un cierto campo de entrada solo puede ingresar números
Código de teclas de las teclas numéricas en el teclado
[48-57] Número claves
[96-105] teclado numérico
También permita la eliminación de la tecla Backspace
El código es el siguiente
La copia del código es la siguiente:
var input = document.getElementById ('number_ipt')
input.Onkeydown = function (e) {
VAR KeyCode = E.KeyCode
if (! isNumber (keycode)) return false
}
// Solo se pueden ingresar números
función isNumber (keycode) {
// número
if (keycode> = 48 && keycode <= 57) return true
// teclado numérico pequeño
if (keycode> = 96 && keycode <= 105) return true
// tecla Backspace
if (keycode == 8) return true
devolver falso
}