Este artículo describe el método de JavaScript que controla el formato de tiempo de entrada. Compártelo para su referencia. El análisis específico es el siguiente:
Solía hacer una entrada de JavaScript para controlar el formato de tiempo, principalmente usando los eventos de tecla y clave, pero sentí que la escritura era muy complicada y había errores.
Hoy aprendí sobre la diferencia entre los eventos de KeyPress y Keydown y KeyUp. Es más o menos como sigue (solo sé tanto en este momento):
Keydown: activado cuando se presiona la tecla. A través del evento, puede obtener el código clave y obtener el valor antes de la entrada en el cuadro de texto;
Clave: activado cuando aparece la tecla (lanzamiento). El código clave se puede obtener a través del evento y el valor después de la entrada del cuadro de texto se puede obtener;
KeyPress: Este evento es básicamente el mismo en Chrome e IE, pero Firefox es un poco diferente;
1. En Chrome e IE: siempre que la tecla presionada pueda aparecer caracteres en el cuadro de texto, se activará (como letras de entrada, números, símbolos, etc.), el código clave se puede obtener a través del evento, y el Event.Key está indefinido; Si los personajes no pueden aparecer, no se activará (como las teclas de flecha, el inicio, el espalda, etc.)
2. En Firefox: las teclas como letras, números, símbolos, direcciones, espacios de espalda, etc. pueden activarse. El nombre clave se puede obtener a través de Event.Key. Si la tecla presionada puede emitir caracteres, Event.KeyCode es 0. Si el carácter no se puede emitir, Event.KeyCode es el código ASCII correspondiente.
Volviendo al tema, mire primero el código (el evento mencionado anteriormente es equivalente a la E en el siguiente código):
La copia del código es la siguiente: var isff = /firefox/i.test(navigator.useragent);
$ ("entrada"). On ({
KeyUp: function (e) {
!/^[/d:]+$/. test (e.target.value) && (e.target.value = "");
},
KeyPress: function (e) {
if (isff && e.keycode! == 0) {
/// Al presionar cualquier tecla en Firefox, activará el evento KeyPress, mientras que en IE/Chrome solo activará la tecla que puede emitir caracteres
/// Para Firefox, E.Keycode! == 0 presiona uno de los backspace, dirección, inicio y otras teclas.
} demás {
if (e.target.value.length> 7)
devolver falso;
if (//d =2}$/.test(e.target.value)) {
e.target.value += ':';
}
var char = String.FromCharCode (E.KeyCode === 0? E. WHHICH: E.KEYCODE);
if (!/^/d/.test (char))
devolver falso;
}
}
});
ISFF && E.KeyCode! == 0 se usa para distinguir entre claves que pueden generar caracteres en Firefox y claves que no pueden generar caracteres. Dado que E.Keycode en Firefox no necesariamente obtiene el valor, E. que se usa en su lugar.
La clave se utiliza para lidiar con el problema de poder ingresar chino o letras cuando se usa el método de entrada.
Use String.FromCharCode () para obtener los caracteres correspondientes al código ASCII.
Espero que este artículo sea útil para la programación de JavaScript de todos.