Masque de saisie de date

Soyez le premier à donner votre avis sur cette source.

Snippet vu 24 729 fois - Téléchargée 26 fois

Contenu du snippet


Source / Exemple :


Ce petit script vous permet d'appliquer un masque de saisie sur un champ de formulaire html.

La fonction se présente comme suit :

function masqueSaisieDate(obj) {
 var ch;
 var ch_gauche, ch_droite;

 ch = obj.value;
 ch.toString(); 
 
 if ( ( (ch.slice(2,3)) != ("/") ) && (ch.length >= 3) ){
  ch_gauche = ch.slice(0,2);
  ch_droite = ch.slice(2);
  obj.value = ch_gauche + "/" + ch_droite;
 }
 if ( ( (ch.slice(5,6)) != ("/") ) && (ch.length >= 6) ){
  ch_gauche = ch.slice(0,5);
  ch_droite = ch.slice(5);
  obj.value = ch_gauche + "/" + ch_droite;
 }
  return;
}

Pour l'appeler, il suffit de mettre quelque chose de ce style

<input type="text" name="date_fin_validite" size='11' maxLength='10' value="" onKeyUp="masqueSaisieDate(this.form.date_fin_validite),">

pour appeler la fonction. Il vous restera alors à taper quelque chose du style 12122001 qui sera automatiquement formaté en 12/12/2001

Conclusion :


Au passage, vous pouvez venir faire un petit tour sur http://www.cnam-lofteur.fr.st

A voir également

Ajouter un commentaire

Commentaires

tikaprod
Messages postés
21
Date d'inscription
lundi 9 février 2004
Statut
Membre
Dernière intervention
24 novembre 2005
-
juste un petit rajout pour ce script.
il permet de corriger les saisies si l'ont met un jour > 31 ou un mois > 12

if ( ( (ch.slice(2,3)) != ("/") ) && (ch.length >= 3) ){
if (ch.slice(0,2)>31) { ch_gauche '31'; } else { ch_gauche ch.slice(0,2); }
ch_droite = ch.slice(2);
obj.value = ch_gauche + "/" + ch_droite;
}
if ( ( (ch.slice(5,6)) != ("/") ) && (ch.length >= 6) ){
if (ch.slice(3,5)>12) { ch_gauche ch.slice(0,3)+'12'; } else { ch_gauche ch.slice(0,5); }
ch_droite = ch.slice(5);
obj.value = ch_gauche + "/" + ch_droite;
}
SgtKabukinan
Messages postés
106
Date d'inscription
lundi 20 septembre 2004
Statut
Membre
Dernière intervention
23 janvier 2010
-
juste pour faire coucou a toxicAvenger ;)
Troma !!!!!

sinon allez plutot voir ce script :
http://www.javascriptfr.com/code.aspx?id=17339
cs_Gatsu
Messages postés
8
Date d'inscription
mercredi 30 avril 2003
Statut
Membre
Dernière intervention
17 juin 2003
-
G trouvé, il suffit de rajouter ce petit bou de code avt :
ch = obj.value;
obj.value = ch.slice(0,10);
return;
M, un autre pb : on voit notre chiffre saisie qui disparait ( c pas très esthétique)
cs_Gatsu
Messages postés
8
Date d'inscription
mercredi 30 avril 2003
Statut
Membre
Dernière intervention
17 juin 2003
-
La simplicité et l'efficacité, très bien.
Juste un petit pb, l'utilisateur peut sasir des années a ralonge.
Il faudrait l'empecher de pouvoir saisir plus de 4 chiffres.
cs_aramis
Messages postés
2
Date d'inscription
vendredi 8 février 2002
Statut
Membre
Dernière intervention
8 février 2002
-
Cela fonctionne très bien sur IE mais sur Netsacpe, le comportement est complètement différent.

Peut -être pourrait-on rajouter des expressions régulières afin d'autoriser d'autres séparateur que le "/" tel que ".", "-"

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.