Este artigo descreve o método de JavaScript que controla o formato do tempo de entrada. Compartilhe para sua referência. A análise específica é a seguinte:
Eu costumava fazer uma entrada de JavaScript para controlar o formato de tempo, principalmente usando os eventos KeyDown e KeyUp, mas senti que a escrita era muito complicada e havia bugs.
Hoje aprendi sobre a diferença entre os eventos do KeyPress e o KeyDown e o KeyUp. É aproximadamente o seguinte (apenas saiba muito no momento):
KeyDown: acionado quando a tecla é pressionada. Através do evento, você pode obter o código de chave e obter o valor antes da entrada na caixa de texto;
KeyUp: acionado quando a chave é aparada (liberação). O código -chave pode ser obtido através do evento e o valor após a entrada da caixa de texto pode ser obtido;
KeyPress: Este evento é basicamente o mesmo no Chrome e no IE, mas o Firefox é um pouco diferente;
1. No Chrome e IE: Desde que a tecla pressionada possa aparecer caracteres na caixa de texto, ela será acionada (como letras de entrada, números, símbolos etc.), o código de chave pode ser obtido através do evento e o evento. Se os personagens não puderem aparecer, não será acionado (como teclas de seta, casa, backspace etc.)
2. Em Firefox: chaves como letras, números, símbolos, direções, espaços backspaces etc. podem desencadear. O nome da chave pode ser obtido através do evento. Se a tecla pressionada pode emitir caracteres, o Event.KeyCode será 0. Se o caractere não puder ser emitido, o Event.KeyCode será o código ASCII correspondente.
Voltando ao tópico, veja o código primeiro (o evento mencionado acima é equivalente ao E no código a seguir):
A cópia do código é a seguinte: var isff = /firefox/i.test(navigator.UserAgent);
$ ("entrada").
keyUp: function (e) {
!/^[/d:]+$/. teste (e.target.value) && (e.target.value = "");
},
keypress: function (e) {
if (isff && e.Keycode! == 0) {
/// Pressionar qualquer tecla no Firefox acionará o evento KeyPress, enquanto no IE/Chrome acionará apenas a chave que pode gerar caracteres
/// para Firefox, e.KeyCode! == 0 pressiona um dos backspace, direção, casa e outras chaves.
} outro {
if (e.target.value.length> 7)
retornar falso;
if (//d {2a °
e.target.value += ':';
}
var char = string.FromCharCode (e.KeyCode === 0? E. que: e.KeyCode);
if (!/^/d/.test (char))
retornar falso;
}
}
});
ISFF && e.KeyCode! == 0 é usado para distinguir entre chaves que podem produzir caracteres no Firefox e as teclas que não podem emitir caracteres. Como e.KeyCode no Firefox pode não obter necessariamente o valor, e.Quem é usado.
O KeyUp é usado para lidar com o problema de poder entrar em chinês ou letras ao usar o método de entrada.
Use String.FromCharCode () para obter os caracteres correspondentes ao código ASCII.
Espero que este artigo seja útil para a programação JavaScript de todos.