Accueil > > > UN CHAMP DE SAISIE DE DATE
UN CHAMP DE SAISIE DE DATE
Information sur la source
Description
Salut à tous je viens de créer une classe qui permet de créer un champ de type input qui peut permettre de saisir les dates. J'attends avec impatience vos suggestions et conseils étant donné que je suis débutant dans le domaine et que c'est mon premier source.
Source
- /****************************************
- * Champ de saisie de date *
- *****************************************/
- /**
- * idDiv = id du bloc dans lequel le champs sera créé (div,span,td)
- * classe = la classe css des champs jour,mois année
- * tabInd = ordre de tabulation dans le formulaire
- * valeur = valeur par défaut (format jj/mm/aaaa)
- */
- function inputdate(idDiv,classe,tabInd,valeur)
- {
- this.id=idDiv;
- this.nom=idDiv;
- this.cl=classe;
- this.ti=tabInd;
- this.value = valeur;
- this.parent=document.getElementById('__'+idDiv+'__');
- this.parent.innerHTML='<span id=""></span><span id="'+this.id+'sj"></span><span id="'+this.id+'sx"></span><span id="'+this.id+'sm">'
- +'</span><span id="'+this.id+'sy"></span><span id="'+this.id+'sa"></span><span id="'+this.id+'spr"></span>';
- this.afficher();
- }
-
- inputdate.prototype.afficher=function()
- {
- tableau=Array("jour","sl1","mois","sl2","annee");
- tabl=Array("j","x","m","y","a");
- tablarg=Array("15.8:2","5:1","15.8:2","5:2","31.8:4");
- d=this.id;
- leChamp=document.createElement("input");
- with(leChamp){
- type="hidden";
- id=this.id;
- name=this.id;
- }
- this.parent.replaceChild(leChamp,document.getElementById(this.id+'spr'));
- //this.innerHTML='';
- for(i=0;i<tableau.length;i++){
- elmtcourant=tableau[i];
- eval(tableau[i]+"=document.createElement(\"input\");");
- eval(tableau[i]+".id='"+this.id+"_"+tabl[i]+"';");
- eval(tableau[i]+".name='"+this.id+"_"+tabl[i]+"';");
- eval(tableau[i]+".className='"+this.cl+"';");
- tlar=tablarg[i].split(":");
- with(eval(tableau[i]+".style")){
- border="0px";
- marginBottom="1px";
- width=tlar[0]+"px";
- height='100%';
- }
- eval(elmtcourant+".maxLength="+tlar[1]);
- eval(elmtcourant+".onkeyup = function (){ /*alert('"+this.id+"');*/ keyup('"+this.id+"','"+this.id+"_"+tabl[i]+"')};");
- eval(elmtcourant+".onblur = function () { /*keyup(d,d+'_"+tabl[i]+"');*/ document.getElementById('"+this.id+"').value=document.getElementById('"+this.id+"_j').value+'/'+document.getElementById('"+this.id+"_m').value+'/'+document.getElementById('"+this.id+"_a').value}");
-
- this.parent.replaceChild(eval(tableau[i]),document.getElementById(this.id+'s'+tabl[i])) ;
- }
- jour.tabIndex=this.ti;
- v =new String(this.value);
- if(v.length == 10){
- jour.value = v.substr(0,2);
- mois.value = v.substr(3,2);
- annee.value = v.substr(6,4);
- }
- sl1.value=sl2.value="/";
- sl1.disabled=sl2.disabled=true;
- sl1.style.color=sl2.style.color="black";
- document.getElementById(this.id).value = this.value;
- }
-
- inputdate.prototype.changer = function(val)
- {
- dt = this.id;
- tab_val = val.split('/');
- document.getElementById(dt+'_j').value = tab_val[0];
- document.getElementById(dt+'_m').value = tab_val[1];
- document.getElementById(dt+'_a').value = tab_val[2];
- document.getElementById(dt).value = val;
- }
- function keyup(p,elmtid){
- /*
- D'abord puisque nous controlons les champ sur onkeyup,nous vérifions d'abord si le nombre de caractère de chaque champ est atteint
- et que le caractère saisi est bien un entier.
- Quand cette condition est vérifier la valeur de ce champ est incorrecte pour les cas suivants:
- */
- elmt=document.getElementById(elmtid);
- if(elmt.value.length==elmt.maxLength){
- val_j=parseInt(document.getElementById(p+"_j").value,10)
- val_m=parseInt(document.getElementById(p+"_m").value,10)
- val=parseInt(elmt.value,10);
- if(
- (isNaN(elmt.value))
- | (elmt.id==p+"_j" & (val<1 | val>31))
- | (elmt.id==p+"_m" & (val<1 | val>12 | (val==2 & val_j>29) | ((val==4 | val==6 | val==9 | val==11) & val_j==31)))
- | (elmt.id==p+"_a" & (val_j==29 & val_m==2 & (val % 4)!=0))
- ){
- elmt.value='';
- elmt.focus();
- }else{
- if(elmt.id==p+"_j") document.getElementById(p+"_m").focus(); else if (elmt.id==p+"_m") document.getElementById(p+"_a").focus(); else document.getElementById(p+"_j").focus();
- }
- }
- //Effacement des champs
- if(window.event && (getKeyCode(window.event) == 8)){
- if(elmt.value=='' & elmt.id==p+'_a'){
- document.getElementById(p+'_m').focus();
- document.getElementById(p+'_m').value=document.getElementById(p+'_m').value; //Pour éviter la sélection de la valeur contenu dans le champs
- }else if(elmt.value=='' & elmt.id==p+'_m'){
- document.getElementById(p+'_j').focus();
- document.getElementById(p+'_j').value=document.getElementById(p+'_j').value;
- }
- }
- }
-
- //Fonction renvoyant le code de la touche appuyée lors d'un événement clavier
- function getKeyCode(evenement)
- {
- for (prop in evenement)
- {
- if(prop == 'which')
- {
- return evenement.which;
- }
- }
-
- return event.keyCode;
- }
/****************************************
* Champ de saisie de date *
*****************************************/
/**
* idDiv = id du bloc dans lequel le champs sera créé (div,span,td)
* classe = la classe css des champs jour,mois année
* tabInd = ordre de tabulation dans le formulaire
* valeur = valeur par défaut (format jj/mm/aaaa)
*/
function inputdate(idDiv,classe,tabInd,valeur)
{
this.id=idDiv;
this.nom=idDiv;
this.cl=classe;
this.ti=tabInd;
this.value = valeur;
this.parent=document.getElementById('__'+idDiv+'__');
this.parent.innerHTML='<span id=""></span><span id="'+this.id+'sj"></span><span id="'+this.id+'sx"></span><span id="'+this.id+'sm">'
+'</span><span id="'+this.id+'sy"></span><span id="'+this.id+'sa"></span><span id="'+this.id+'spr"></span>';
this.afficher();
}
inputdate.prototype.afficher=function()
{
tableau=Array("jour","sl1","mois","sl2","annee");
tabl=Array("j","x","m","y","a");
tablarg=Array("15.8:2","5:1","15.8:2","5:2","31.8:4");
d=this.id;
leChamp=document.createElement("input");
with(leChamp){
type="hidden";
id=this.id;
name=this.id;
}
this.parent.replaceChild(leChamp,document.getElementById(this.id+'spr'));
//this.innerHTML='';
for(i=0;i<tableau.length;i++){
elmtcourant=tableau[i];
eval(tableau[i]+"=document.createElement(\"input\");");
eval(tableau[i]+".id='"+this.id+"_"+tabl[i]+"';");
eval(tableau[i]+".name='"+this.id+"_"+tabl[i]+"';");
eval(tableau[i]+".className='"+this.cl+"';");
tlar=tablarg[i].split(":");
with(eval(tableau[i]+".style")){
border="0px";
marginBottom="1px";
width=tlar[0]+"px";
height='100%';
}
eval(elmtcourant+".maxLength="+tlar[1]);
eval(elmtcourant+".onkeyup = function (){ /*alert('"+this.id+"');*/ keyup('"+this.id+"','"+this.id+"_"+tabl[i]+"')};");
eval(elmtcourant+".onblur = function () { /*keyup(d,d+'_"+tabl[i]+"');*/ document.getElementById('"+this.id+"').value=document.getElementById('"+this.id+"_j').value+'/'+document.getElementById('"+this.id+"_m').value+'/'+document.getElementById('"+this.id+"_a').value}");
this.parent.replaceChild(eval(tableau[i]),document.getElementById(this.id+'s'+tabl[i])) ;
}
jour.tabIndex=this.ti;
v =new String(this.value);
if(v.length == 10){
jour.value = v.substr(0,2);
mois.value = v.substr(3,2);
annee.value = v.substr(6,4);
}
sl1.value=sl2.value="/";
sl1.disabled=sl2.disabled=true;
sl1.style.color=sl2.style.color="black";
document.getElementById(this.id).value = this.value;
}
inputdate.prototype.changer = function(val)
{
dt = this.id;
tab_val = val.split('/');
document.getElementById(dt+'_j').value = tab_val[0];
document.getElementById(dt+'_m').value = tab_val[1];
document.getElementById(dt+'_a').value = tab_val[2];
document.getElementById(dt).value = val;
}
function keyup(p,elmtid){
/*
D'abord puisque nous controlons les champ sur onkeyup,nous vérifions d'abord si le nombre de caractère de chaque champ est atteint
et que le caractère saisi est bien un entier.
Quand cette condition est vérifier la valeur de ce champ est incorrecte pour les cas suivants:
*/
elmt=document.getElementById(elmtid);
if(elmt.value.length==elmt.maxLength){
val_j=parseInt(document.getElementById(p+"_j").value,10)
val_m=parseInt(document.getElementById(p+"_m").value,10)
val=parseInt(elmt.value,10);
if(
(isNaN(elmt.value))
| (elmt.id==p+"_j" & (val<1 | val>31))
| (elmt.id==p+"_m" & (val<1 | val>12 | (val==2 & val_j>29) | ((val==4 | val==6 | val==9 | val==11) & val_j==31)))
| (elmt.id==p+"_a" & (val_j==29 & val_m==2 & (val % 4)!=0))
){
elmt.value='';
elmt.focus();
}else{
if(elmt.id==p+"_j") document.getElementById(p+"_m").focus(); else if (elmt.id==p+"_m") document.getElementById(p+"_a").focus(); else document.getElementById(p+"_j").focus();
}
}
//Effacement des champs
if(window.event && (getKeyCode(window.event) == 8)){
if(elmt.value=='' & elmt.id==p+'_a'){
document.getElementById(p+'_m').focus();
document.getElementById(p+'_m').value=document.getElementById(p+'_m').value; //Pour éviter la sélection de la valeur contenu dans le champs
}else if(elmt.value=='' & elmt.id==p+'_m'){
document.getElementById(p+'_j').focus();
document.getElementById(p+'_j').value=document.getElementById(p+'_j').value;
}
}
}
//Fonction renvoyant le code de la touche appuyée lors d'un événement clavier
function getKeyCode(evenement)
{
for (prop in evenement)
{
if(prop == 'which')
{
return evenement.which;
}
}
return event.keyCode;
}
Conclusion
Tester sous Internet Explorer ( sauf les styles css) et Mozilla Firefox
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
controle dans un formulaire [ par adadoudou ]
Bonjour,En fait j'ai créer un formulaire HTML où deux champs me pose problème. J'ai un champs date et un champs quantité et j'aurais voulu savoir comm
vérification de formulaire [ par lerlaetitia ]
Bonjour,j'aimerais vérifier que la somme de mes champs "SURFACEPIECE$i" soit inférieure à une valeur fixée (200 par exemple). Seulement, je ne sais pa
pb de vérification de formulaire [ par Yoobi ]
bonjour à tous :)Je fais une page d'inscription dont je vérifie les champs avec des fonctions en javascript.Le hic est que les fonctions ne semblent p
script qui permet de verifier si les champs d'un formulaire sont complété [ par sema ]
Hello,je ne sais pas du tout programmer en javascript, et je souhaite trouver un sript qui permet de verifier si l'utilisateur a remplie les champs d'
problème de vérification des champs d'un formulaire [ par arambasic ]
Voici mon formulaire avec le code javascript pour le vérifié, quand j'envoie le formulaire in me donne bien les box d'erreurs mais il
Controle de date dans formulaire [ par laubro ]
Bonjour,je cherche un bout de code qui me permettrait de faire un control entre 2 champs date dans un formulaire(php) en cliquant sur le bouton "envoy
Redondance automatique de champs formulaire [ par paul13 ]
Bonjour,Voici quel est le but de ma recherche. Je souhaiterai si celà est possible en javascript, rendre redondant la saisie d'un champ texte. ex
formulaire vérification sur saisie [ par fredshaoline ]
Bonjour, Tout d'abord je tiens à vous remercier pour ce site qui est vraiment génial, je suis vraiment ravi de l'avoir connu. Voilà mon problème.
Controle champ formulaire [ par flopad ]
Bonjour tout le monde, j'ai une page contenant un formulaire, je voudrais qu'on message d'alerte s'affiche lors de la validation si la date (code ci-d
date dans formulaire [ par dlgforum ]
Bonjour, Voilà, j'ai un formulaire dans lequel je saisie une date et je souhaiterai un controle pour vérifier si cette date est bien entre deux dates.
|
Derniers Blogs
XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|