Masque de saisie de date

4/5 (5 avis)

Snippet vu 26 872 fois - Téléchargée 28 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
30 mars 2006 à 16:14
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
19 mai 2005 à 17:50
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
17 juin 2003 à 15:24
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
17 juin 2003 à 15:14
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
8 févr. 2002 à 11:07
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.