


jQuery implémente un formatage simple des entrées de date control_jquery
Il y a plus d'une centaine de lignes de code js.
D'abord les rendus
code HTML
Date :
Définissez le nom de la classe de l'élément d'entrée sur hhm-dateInputer et utilisez cette classe pour lier le contrôle d'entrée de date.
code js
La bibliothèque jQuery est utilisée ici, principalement utilisée pour sélectionner des éléments et lier des événements.
http://code.jquery.com/jquery-1.9.1.min.js">>
Comme il existe de nombreuses opérations pour obtenir et définir la position du curseur, plusieurs fonctions d'outils présentées dans le blog précédent sont utilisées.
//Obtenir la position du curseur
fonction getCursor(elem) {
//IE 9, 10, autres navigateurs
Si (elem.selectionStart !== non défini) {
return elem.selectionStart;
} autre { //IE 6,7,8
var range = document.selection.createRange();
range.moveStart("character", -elem.value.length);
var len = range.text.length;
retourner len ;
>
>
//Définir la position du curseur
fonction setCursor(elem, index) {
//IE 9, 10, autres navigateurs
Si (elem.selectionStart !== non défini) {
elem.selectionStart = index;
elem.selectionEnd = index;
} autre { //IE 6,7,8
var range = elem.createTextRange();
Range.moveStart("character", -elem.value.length); //Déplacez la bordure gauche jusqu'au point de départ
range.move("character", index); //Le curseur est placé à la position de l'index
range.select();
>
>
//Obtenir le texte sélectionné
fonction getSelection(elem) {
//IE 9, 10, autres navigateurs
Si (elem.selectionStart !== non défini) {
return elem.value.substring(elem.selectionStart, elem.selectionEnd);
} autre { //IE 6,7,8
var range = document.selection.createRange();
return range.text;
>
>
//Définissez la plage sélectionnée
function setSelection(elem, leftIndex, rightIndex) {
If (elem.selectionStart !== undefined) { //IE 9, 10, autres navigateurs
elem.selectionStart = leftIndex;
elem.selectionEnd = rightIndex;
} autre { //IE 6,7,8
var range = elem.createTextRange();
range.move("character", -elem.value.length); //Le curseur se déplace à la position 0.
//Ici doit être moveEnd d'abord, puis moveStart
//Parce que si la bordure gauche est définie pour être plus grande que la bordure droite, le navigateur rendra automatiquement la bordure droite égale à la bordure gauche.
range.moveEnd("character", rightIndex);
range.moveStart("character", leftIndex);
range.select();
>
>
--------------- Boum ---
Parlons d’abord des idées principales. En fait, vous pouvez faire un dessin ici, mais je ne sais pas comment le dessiner. S'il vous plaît, donnez-moi votre avis.
Recherchez d’abord l’élément portant le nom de classe hhm-dateInputer.
Liez-y deux fonctions de gestion d'événements. touche enfoncée, mise au point, flou
concentrer
Déterminez si le contenu de l'élément d'entrée est vide, puis définissez sa valeur initiale sur "____-__-__"
flou (Grâce aux suggestions des amis dans les commentaires ci-dessous, cet événement sera encore plus parfait)
Déterminez si le contenu de l'élément d'entrée est la valeur initiale "____-__-__", définissez sa valeur sur vide ""
touche enfoncée
Pourquoi pas keyup, mais keydown : Nous savons que lorsque l'événement keydown se produit, les caractères du clavier n'ont pas encore été saisis dans la zone de saisie, ce qui est très important. Si nécessaire, nous pouvons empêcher la saisie de caractères inappropriés dans le programme.
1. Obtenez d'abord la valeur keyCode de l'événement de l'objet événement lorsqu'il est jugé qu'il s'agit d'un nombre, supprimez un soulignement après le nombre.
2. Lorsque la valeur keyCode représente la suppression de la clé, supprimez le numéro et ajoutez un soulignement.
3. KeyCode renvoie false dans les autres cas, empêchant la saisie de caractères.
La fonction setTimeout sera utilisée dans les première et deuxième étapes ci-dessus pour effectuer certaines opérations. Cette fonction est utilisée car les caractères clés de l'événement keyup n'ont pas réellement été appliqués à la zone de texte. L'opération dans setTimeout peut résoudre ce problème.
De plus, il existe une méthode très importante resetCursor dans le code. Cette méthode est appelée plusieurs fois dans le programme pour placer le curseur à la position de saisie appropriée.
//Placez le curseur à la bonne position
fonction resetCursor(elem) {
var valeur = elem.value;
var index = valeur.longueur;
//Lorsque l'utilisateur sélectionne et supprime du texte, le contenu ne peut être défini qu'au format initial.
Si (elem.value.length !== dateStr.length) {
elem.value = dateStr;
>
//Placez le curseur devant le premier _underline
//Si aucun soulignement n'est trouvé, mettez-le à la fin
var temp = valeur.search(/_/);
Indice = temp > -1 ? temp : index;
setCursor(elem, index);
>
Le code js complet est publié ci-dessous.
$(fonction(){
var inputs = $(".hhm-dateInputer");
var dateStr = "____-__-__";
inputs.each(function(index,elem){
var input = $(this);
input.on("keydown",function(event){
var that = this ; //La zone de saisie qui déclenche actuellement l'événement.
var key = event.keyCode;
var curseurIndex = getCursor(that);
à Si(clé >= 48 && clé <= 57){
//Si le curseur est à la fin de la date ou que le caractère suivant du curseur est "-", renvoie false pour empêcher l'affichage du caractère.
If(cursorIndex == dateStr.length || that.value.charAt(cursorIndex) === "-") {return false;}
//Lorsqu'il n'y a pas de soulignement dans la chaîne, renvoie false
If(that.value.search(/_/) === -1){return false;}
var fron = that.value.substring(0,cursorIndex); //Texte avant le curseur
var reg = /(d)_/;
setTimeout(function(){ //Les caractères ont été saisis dans le texte après setTimeout
//Texte après le curseur
var end = that.value.substring(cursorIndex,that.value.length);
//Supprimez le trait de soulignement après le numéro nouvellement inséré_
That.value = front end.replace(reg,"$1");
resetCursor(that);
},1);
return true ;
//Touche de suppression "Retour arrière"
}else if(key == 8){
// ne peut pas être supprimé lorsque le curseur est au premier plan. Mais pensez à la suppression lorsque tout le texte est sélectionné
If(!cursorIndex && !getSelection(that).length){ return false;}
//Gestion des traits de soulignement rencontrés lors de la suppression
If(that.value.charAt(cursorIndex -1) == "-"){
var ar = that.value.split("");
ar.splice(cursorIndex-2,1,"_");
That.value = ar.join("");
resetCursor(that);
return false ;
}
setTimeout(function(){
//Réinitialiser lorsque la valeur est vide
Si(that.value === "") {
That.value = "____-__-__";
resetCursor(that);
}
//La position supprimée est soulignée
var curseur = getCursor(that);
var ar = that.value.split("");
ar.splice(cursor,0,"_");
That.value = ar.join("");
resetCursor(that);
},1);
return true ;
}
return false ;
});
input.on("focus",function(){
Si(!this.value){
This.value = "____-__-__";
}
resetCursor(this);
});
input.on("flou",function(){
Si(this.value === "____-__-__"){
This.value = "";
}
});
});
//Placez le curseur à la bonne position
Fonction resetCursor(elem){
var valeur = elem.value;
var index = valeur.longueur;
//Lorsque l'utilisateur sélectionne et supprime du texte, le contenu ne peut être défini qu'au format initial.
Si(elem.value.length !== dateStr.length){
elem.value = dateStr;
>
var temp = value.search(/_/);
index = temp> setCursor(elem,index);
//Placez le curseur devant le premier _underline
//Si aucun soulignement n'est trouvé, mettez-le à la fin
>
});
fonction getCursor(elem){
//IE 9, 10, autres navigateurs
Si(elem.selectionStart !== non défini){
return elem.selectionStart;
} autre{ //IE 6,7,8
var range = document.selection.createRange();
range.moveStart("character",-elem.value.length);
var len = range.text.length;
retourner len;
>
>
fonction setCursor(elem,index){
//IE 9, 10, autres navigateurs
Si(elem.selectionStart !== non défini){
elem.selectionStart = index;
elem.selectionEnd = index;
} autre{//IE 6,7,8
var range = elem.createTextRange();
Range.moveStart("character",-elem.value.length); //Déplacez la bordure gauche jusqu'au point de départ
range.move("character",index); //Placez le curseur à la position d'index
range.select();
>
>
fonction getSelection(elem){
//IE 9, 10, autres navigateurs
Si(elem.selectionStart !== non défini){
return elem.value.substring(elem.selectionStart,elem.selectionEnd);
} autre{ //IE 6,7,8
var range = document.selection.createRange();
return range.text;
>
>
fonction setSelection(elem,leftIndex,rightIndex){
If(elem.selectionStart !== undefined){ //IE 9, 10, autres navigateurs
elem.selectionStart = leftIndex;
elem.selectionEnd = rightIndex;
} autre{//IE 6,7,8
var range = elem.createTextRange();
range.move("character",-elem.value.length); //Le curseur se déplace à la position 0.
//Ici doit être moveEnd d'abord, puis moveStart
//Parce que si la bordure gauche est définie pour être plus grande que la bordure droite, le navigateur rendra automatiquement la bordure droite égale à la bordure gauche.
Range.moveEnd("character",rightIndex);
Range.moveStart("character",leftIndex);
range.select();
>
>
Conclusion
Ce plug-in peut encore comporter certains domaines qui doivent être améliorés.
Absence d'interface pour lier ce plug-in à des éléments via des appels js
Le plug-in peut avoir quelques bugs
Si vous rencontrez des problèmes avec le code ci-dessus, n'hésitez pas à me le faire savoir.
Ce qui précède représente l’intégralité du contenu de cet article, j’espère que vous l’aimerez tous.

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

De nos jours, nous rencontrerons inévitablement certains problèmes comme l'impossibilité d'allumer le téléphone ou des retards, comme une panne du système, mais lors de leur utilisation, les téléphones portables sont devenus un élément indispensable de nos vies. Nous sommes souvent désemparés et parfois, il n’existe aucune solution à ces problèmes. Pour vous aider à résoudre les problèmes de téléphone portable, cet article vous présentera certaines méthodes de récupération du format de téléphone portable et restaurera votre téléphone en fonctionnement normal. Sauvegarder les données - protégez les informations importantes, telles que les photos et les contacts, contre la perte pendant le processus de formatage. Avant de formater votre téléphone, la première chose à considérer est de sauvegarder les données et fichiers importants sur votre téléphone. Pour garantir la sécurité des données ou choisir de transférer des fichiers vers un service de stockage cloud, vous pouvez les sauvegarder en vous connectant à un ordinateur. Utilisez la fonction de récupération intégrée du système - simple

Comment utiliser la méthode de requête PUT dans jQuery ? Dans jQuery, la méthode d'envoi d'une requête PUT est similaire à l'envoi d'autres types de requêtes, mais vous devez faire attention à certains détails et paramètres. Les requêtes PUT sont généralement utilisées pour mettre à jour des ressources, comme la mise à jour de données dans une base de données ou la mise à jour de fichiers sur le serveur. Ce qui suit est un exemple de code spécifique utilisant la méthode de requête PUT dans jQuery. Tout d'abord, assurez-vous d'inclure le fichier de la bibliothèque jQuery, puis vous pourrez envoyer une requête PUT via : $.ajax({u

Méthode de formatage HTML : 1. Utilisez les outils de formatage HTML en ligne ; 2. Utilisez les touches de raccourci de formatage HTML fournies avec l'éditeur de code, telles que Shift + Alt + F dans Visual Studio Code ; 3. Utilisez des plug-ins, comme dans Sublime ; Texte HTML/CSS/JS Prettify plug-in ; 4. Utiliser des outils de ligne de commande, tels que HTML Tidy 5. Formatage manuel selon les normes et habitudes de codage ;

Comment supprimer l'attribut height d'un élément avec jQuery ? Dans le développement front-end, nous rencontrons souvent le besoin de manipuler les attributs de hauteur des éléments. Parfois, nous pouvons avoir besoin de modifier dynamiquement la hauteur d'un élément, et parfois nous devons supprimer l'attribut height d'un élément. Cet article explique comment utiliser jQuery pour supprimer l'attribut height d'un élément et fournit des exemples de code spécifiques. Avant d'utiliser jQuery pour exploiter l'attribut height, nous devons d'abord comprendre l'attribut height en CSS. L'attribut height est utilisé pour définir la hauteur d'un élément

Titre : jQuery Astuces : Modifier rapidement le texte de toutes les balises a de la page En développement web, nous avons souvent besoin de modifier et d'exploiter des éléments de la page. Lorsque vous utilisez jQuery, vous devez parfois modifier le contenu textuel de toutes les balises de la page en même temps, ce qui peut économiser du temps et de l'énergie. Ce qui suit explique comment utiliser jQuery pour modifier rapidement le texte de toutes les balises a de la page et donne des exemples de code spécifiques. Tout d'abord, nous devons introduire le fichier de la bibliothèque jQuery et nous assurer que le code suivant est introduit dans la page : <

Titre : utilisez jQuery pour modifier le contenu textuel de toutes les balises. jQuery est une bibliothèque JavaScript populaire largement utilisée pour gérer les opérations DOM. En développement web, nous rencontrons souvent le besoin de modifier le contenu textuel de la balise de lien (une balise) sur la page. Cet article expliquera comment utiliser jQuery pour atteindre cet objectif et fournira des exemples de code spécifiques. Tout d’abord, nous devons introduire la bibliothèque jQuery dans la page. Ajoutez le code suivant dans le fichier HTML :

jQuery est une bibliothèque JavaScript populaire largement utilisée pour gérer la manipulation DOM et la gestion des événements dans les pages Web. Dans jQuery, la méthode eq() est utilisée pour sélectionner des éléments à une position d'index spécifiée. Les scénarios d'utilisation et d'application spécifiques sont les suivants. Dans jQuery, la méthode eq() sélectionne l'élément à une position d'index spécifiée. Les positions d'index commencent à compter à partir de 0, c'est-à-dire que l'index du premier élément est 0, l'index du deuxième élément est 1, et ainsi de suite. La syntaxe de la méthode eq() est la suivante : $("s

Comment savoir si un élément jQuery possède un attribut spécifique ? Lorsque vous utilisez jQuery pour exploiter des éléments DOM, vous rencontrez souvent des situations dans lesquelles vous devez déterminer si un élément possède un attribut spécifique. Dans ce cas, nous pouvons facilement implémenter cette fonction à l'aide des méthodes fournies par jQuery. Ce qui suit présentera deux méthodes couramment utilisées pour déterminer si un élément jQuery possède des attributs spécifiques et joindra des exemples de code spécifiques. Méthode 1 : utilisez la méthode attr() et l'opérateur typeof // pour déterminer si l'élément a un attribut spécifique
