IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Contr�le de dates


Sujet :

JavaScript

  1. #1
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    39
    D�tails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 39
    Par d�faut Contr�le de dates
    Bonjour
    J'ai 20 ou 30 formulaires qui utilisent tous le m�me fichier javascript mutualis� pour le contr�le de saisie g�n�ral (champs obligatoire, validit� des dates, ...) lors de l'envoi. Pour aider � la saisie des dates, j'utilise le script Dynamic Date Selector http://javascriptkit.com/script/scri...selector.shtml, en autorisant aussi la saisie libre dans le champ. Ce script est aussi dans mon fichier mutualis�.

    Seulement l� j'ai un formulaire � faire avec plusieurs dates et je dois v�rifier la coh�rence des dates entre elles (�chelonnement), ainsi que par rapport � d'autres dates pr�cis�es lors de la cr�ation de la page en PHP.

    Alors v�rifier lors de l'envoi cela me fait mal au ventre: car ou je duplique le code du Dynamic Date Selector et le code g�n�ral de v�rification du formulaire en y ajoutant mes fonctions de v�rification dans un nouveau fichier javascript rien que pour cette page, ou j'ajoute mon code au fichier existant et il sera charg� dans 20 ou 30 pages qui n'en n'ont rien � faire.

    C'est pour �a que j'essaye de v�rifier lors de la saisie, en attachant des �v�nement onChange et onBlur � chaque champ de saisie de date.

    onChange : cela fonctionne tr�s bien si l'utilisateur modifie directement la valeur. Mais il n'est pas d�clench� si la date a �t� choisie avec le Dynamic Date Selector (normal). Je r�cup�re bien la valeur saisie.

    onBlur : il est bien d�clench� si on choisit une date avec le Dynamic Date Selector, mais le probl�me c'est qu'en lisant le champ je r�cup�re l'ancienne valeur. Je ne comprend pas pourquoi.

    J'ai donc essay� de travaill� avec une variable globale; le code est :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    var ds_element;
     
    function ds_onclick(d, m, y) {
    	// Hide the calendar.
    	ds_hi();
    	// Set the value of it, if we can.
    	if (typeof(ds_element.value) != 'undefined') {
    		ds_element.value = ds_format_date(d, m, y);
    	// Maybe we want to set the HTML in it.
    	} else if (typeof(ds_element.innerHTML) != 'undefined') {
    		ds_element.innerHTML = ds_format_date(d, m, y);
    	// I don't know how should we display it, just alert it to user.
    	} else {
    		alert (ds_format_date(d, m, y));
    	}
            ds_element.focus();
     
    }
    Et bien dans ds_element.value ou ds_element.innerHTML je trouve l'ancienne valeur alors que la valeur s�lectionn� avec le Dynamic Date Selector est bien dans le champ. Comment est-ce possible ?

  2. #2
    Membre Expert

    Homme Profil pro
    Ing�nieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Ing�nieur Hospitalier
    Secteur : Sant�

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Billets dans le blog
    1
    Par d�faut
    Je pense que tes conditions sont pas adapt�s, si ta function ds_onclick est la function d�clanch� par un onchange ou onblur :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    function ds_onclick(d, m, y) {
    	// Hide the calendar.
    	ds_hi();
    	// Set the value of it, if we can.
    	if (typeof(ds_element.value) != 'undefined') {
    		ds_element.value = ds_format_date(d, m, y); //<- ici tu affecte ta date donc rien avoir.
    alert(ds_element.value); // <-- s'est la valeur que tu cherche (la nouvelle)
    	// Maybe we want to set the HTML in it.
    	} else if (typeof(ds_element.innerHTML) != 'undefined') {
    		ds_element.innerHTML = ds_format_date(d, m, y);
    	// I don't know how should we display it, just alert it to user.
    	} else {
    		alert (ds_format_date(d, m, y));
    	}
            ds_element.focus();
     
    }
    Je n'est pas tout ton code, donc j'extrapole, je sais pas si j'ai bien saisit ton probl�me.

  3. #3
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    39
    D�tails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 39
    Par d�faut
    Bon j'ai tard� � vous r�pondre car j'attendais que free veuille bien m'ouvrir des pages persos pour mieux vous exposer mon probl�me. Comme �a vous avez aussi le code source qui est long comme le bras.
    http://demojeannot.free.fr/
    Voil�, c'est juste un petit formulaire et vous voyez mon probl�me: je veux faire un contr�le de saisie quand on quitte le champ (sur onBlur): je r�cup�re bien la valeur du champ si on y fait une entr�e libre, mais si on utilise le calendrier la valeur r�cup�r�e n'est pas mise � jour, bien que affich�e dans le champ et je ne comprend pas ce myst�re.

    Edit: pardon le fait de l'�crire m'a fait comprendre: quand on clique sur le calendrier, �a d�clenche le on Blur, et cela avant que le champ soit mis � jour.
    Comment je peux m'en sortir?

Discussions similaires

  1. [Dates] Contr�le validit� date
    Par marcel marie dans le forum Langage
    R�ponses: 2
    Dernier message: 10/01/2009, 13h17
  2. Contr�le de dates
    Par kodshadow dans le forum Forms
    R�ponses: 1
    Dernier message: 14/10/2008, 19h10
  3. Contr�le Validit� Date
    Par HiRoN dans le forum G�n�ral JavaScript
    R�ponses: 6
    Dernier message: 14/12/2007, 14h12
  4. contr�le de date - jours ouvr�s
    Par RobinNono dans le forum G�n�ral JavaScript
    R�ponses: 3
    Dernier message: 09/08/2007, 12h03
  5. Contr�le de date
    Par amka dans le forum Access
    R�ponses: 7
    Dernier message: 24/08/2006, 12h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo