Cet article décrit la méthode de JavaScript contrôlant le format de temps d'entrée. Partagez-le pour votre référence. L'analyse spécifique est la suivante:
J'avais l'habitude de faire une entrée JavaScript pour contrôler le format temporel, en utilisant principalement les événements de clés et de Keyup, mais je sentais que l'écriture était très compliquée et qu'il y avait des bogues.
Aujourd'hui, j'ai appris la différence entre les événements de la pression de Keyp et Keydown et Keyup. C'est à peu près comme suit (en savoir tellement pour le moment):
Keydown: déclenché lorsque la touche est enfoncée. Grâce à l'événement, vous pouvez obtenir le keycode et obtenir la valeur avant d'entrer dans la zone de texte;
Keyup: déclenché lorsque la touche est apparue (libération). Le keycode peut être obtenu via l'événement et la valeur après entrée de la zone de texte peut être obtenue;
DESTRESSE: Cet événement est fondamentalement le même dans Chrome et c'est-à-dire, mais Firefox est un peu différent;
1. Dans Chrome et IE: Tant que la touche appuyée peut apparaître des caractères dans la zone de texte, elle sera déclenchée (comme des lettres d'entrée, des nombres, des symboles, etc.), le keycode peut être obtenu via l'événement et l'événement. Lake n'est pas définie; Si les personnages ne peuvent pas apparaître, il ne sera pas déclenché (comme les touches de flèche, la maison, le backpace, etc.)
2. Dans Firefox: des clés telles que des lettres, des nombres, des symboles, des directions, des espaces arrière, etc. peuvent tous déclencher. Le nom de clé peut être obtenu via Event.Key. Si la touche appuyée peut sortir des caractères, event.Keycode est 0. Si le caractère ne peut pas être sorti, Event.Keycode est le code ASCII correspondant.
Pour en revenir au sujet, regardez d'abord le code (l'événement mentionné ci-dessus équivaut à l'E dans le code suivant):
La copie de code est la suivante: var isff = /firefox/i.test(navigator.UserAgent);
$ ("entrée"). sur ({
KeyUp: fonction (e) {
! / ^ [/ d:] + $ /. test (e.target.value) && (e.target.value = "");
},
DES VIEUX: FONCTION (E) {
if (isff && e.KeyCode! == 0) {
/// Appuyez sur n'importe quelle touche dans Firefox déclenchera l'événement de la pression, tandis que dans IE / Chrome ne déclenchera que la touche qui peut produire des caractères
/// pour Firefox, E.KeyCode! == 0 Appuyez sur l'un des clés arrière, direction, maison et autres touches.
} autre {
if (e.target.value.length> 7)
retourne false;
if (//d;
e.target.value + = ':';
}
var char = string.fromCharcode (e.KeyCode === 0? E.Which: e.KeyCode);
if (! / ^ / d / .test (char))
retourne false;
}
}
});
ISFF && e.KeyCode! == 0 est utilisé pour distinguer les touches qui peuvent produire des caractères dans Firefox et les touches qui ne peuvent pas produire de caractères. Étant donné que E.KeyCode dans Firefox peut ne pas nécessairement obtenir la valeur, E. qui est utilisé à la place.
Le KeyUp est utilisé pour traiter le problème de la possibilité de saisir chinois ou de lettres lors de l'utilisation de la méthode d'entrée.
Utilisez String.FromCharcode () pour obtenir les caractères correspondant au code ASCII.
J'espère que cet article sera utile à la programmation JavaScript de tous.