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 :

[POO] Double verification de formulaire javascript


Sujet :

JavaScript

  1. #1
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    20
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 20
    Par d�faut [POO] Double verification de formulaire javascript
    Bonsoir a tous

    j'ai un formulaire sur lequel je verifie si les champs sont vides avec javascript,

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    function validation(theform){	
     
    	dnf=theform.dateentree
    		if (dnf.value.length == ""){	
    			dnf.focus();
    			alert("saisissez votre date entrée.");
    			return (false);
    		}
    j'aimerai aussi verifier que la date d'entr�e ne soit pas superieur a celle de sortie

    avez vous une id�e ?

    Merci

  2. #2
    Expert �minent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par d�faut
    Bonjour,

    Il existe l'objet Date() en Javascript et il comporte une m�thode getTime() qui renvoie le nombre de millisecondes.
    Comparez les millisecondes des deux dates pour obtenir votre v�rification.

    Attention, il vous faut r�cup�rer vos valeurs correctement afin qu'elles soient au format Date().

  3. #3
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    20
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 20
    Par d�faut
    Merci de votre r�ponse

    cependant, j'ai mis un menu d�roulant avec des la balise <option> de fa�on a ce que les personnes s�lectionnent leur date

    il faudrait simplement que le javascript v�rfiie que le champ datenetr�e soit toujours inferieur a datesortie

    avez vous une solution ?

  4. #4
    Expert �minent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par d�faut
    Je comprends bien votre soucis. Mais vous pouvez r�cup�rer votre valeur date entr�e et vous devez la modifier en Date() Javascript afin de comparer les millisecondes des deux dates.

    L'ennui, c'est que je ne connais pas assez bien cet objet Date(). Je sais qu'il a des m�thodes setDate(X), setDay(X), setMonth(X), ... Qui permettent de modifier une partie d'une date. Et pour l'instant, j'aurais tendance � r�cup�rer le jour s�lectionn� (donc une variable texte) et le setter dans une date quelconque (donc une variable Date), et faire de m�me pour le mois et l'ann�e, et enfin, faire le getTime pour r�cup�rer les millisecondes.

    D�sol�, je n'ai pas d'autre r�ponse.

  5. #5
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Imaginons que la date soit de la forme jj/mm/aaaa :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    var date1 = dateEntree.split('/');
    var date2 = dateSortie.split('/');
    var dateDebut = new Date(date1[2], parseInt(date1[1],10)-1, date1[0]);
    var dateFin = new Date(date2[2], parseInt(date2[1],10)-1, date2[0]);
    if(dateDebut > dateFin){
        // La date d'entrée est supérieure à la date de sortie.
    }
    Le "parseInt(date2[1],10)-1" sert � rectifier le mois qui est not� de 0 � 11 en JavaScript et le 10 est TRES important dans parseInt car sinon, un mois entr� sous la forme 01 par exemple, ne sera pas transform� en base 10.
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  6. #6
    Membre Expert Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Par d�faut
    Et bien peut-�tre que la FAQ peut aider, sait-on jamais!

    edit: grill�, comme d'hab...

  7. #7
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Citation Envoy� par franculo_caoulene Voir le message
    Et bien peut-�tre que la FAQ peut aider, sait-on jamais!

    edit: grill�, comme d'hab...
    Grill� peut-�tre, mais ta r�ponse est pr�f�rable � la mienne !
    Il faut effectivement toujours rechercher (FAQ, Forum) avant de poster !
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  8. #8
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    20
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 20
    Par d�faut
    Bonsoir

    merci de vos r�ponse mais mes dates sont a ce format :

    Code html : 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
    <select name="datearrivee">
                		<option value="">choissisez un date entree</option>
                                <option value="01 janvier">01 janvier</option>
                                <option value="02 janvier">02 janvier</option>
                                <option value="03 janvier">03 janvier</option>
                                <option value="04 janvier">04 janvier</option>
                                <option value="05 janvier">05 janvier</option>
                                <option value="06 janvier">06 janvier</option>
                         </select>
     
    <select name="datedepart">
                		<option value="">choissisez un date de depart</option>
                                <option value="01 janvier">01 janvier</option>
                                <option value="02 janvier">02 janvier</option>
                                <option value="03 janvier">03 janvier</option>
                                <option value="04 janvier">04 janvier</option>
                                <option value="05 janvier">05 janvier</option>
                                <option value="06 janvier">06 janvier</option>
                         </select>

    la seule qui fonctionne c'est en mettant le javascript suivant mais c'est uniquement si une date de depart est identique a celle d'arriv�e

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    dnf=theform.datedepart
    		if (dnf.value.datearrivee == dnf.value.datedepart){	
    			dnf.focus();
    			alert("Merci de modifier votre date.");
    			return (false);
    		}
    je n'arrive pas a mettre la condition si date arriv�e > date depart , merci de modifier votre date d'arriv�e.

    des id�es ?

  9. #9
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Ben si les dates sont les m�mes dans tes deux combos, tu testes sur le selectedIndex.
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  10. #10
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    20
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 20
    Par d�faut
    Bonsoir,

    merci pour le selectedindex, je l'ai int�gr� dans mon javascript mais il ne fonctionne pas.. je l'ai sans doute mal r�dig�, voici le code de mon javacsript :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    	dnf=theform.elements
    		if (theform.elements['datedepart'].options[theform.elements['datedepart'].selectedIndex].value < theform.elements['datearrivee'].options[theform.elements['datearrivee'].selectedIndex].value){	
    			dnf.focus();
    			alert("la date de votre arrivée ne peut pas etre avant la date de votre depart.");
    			return (false);
    		}
    j'essaie tant bien que mal, j'avoue etre d�pass�, mais je persiste alors si vous avez de quoi m'aiguiller, je suis a votre �coute

    merci d'avance aux personnes qui me r�pondent car c'est par moment d�courageant de passer du temps sur des choses que l'on ne comprend pas..

    Romann76

  11. #11
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Citation Envoy� par Bovino Voir le message
    Ben si les dates sont les m�mes dans tes deux combos, tu testes sur le selectedIndex.
    Pas le value du selectedIndex...
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    if (theform.elements['datedepart'].selectedIndex < theform.elements['datearrivee'].selectedIndex)
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  12. #12
    Expert �minent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par d�faut
    Re bonjour,

    Essayez peut-�tre ainsi:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    if (document.getElementById("datedepart").selectedIndex < document.getElementById("datearrivee").selectedIndex)
    Je ne sais pas quelle mani�re du document.getElementById("") ou du theform.elements[""] est la meilleure mais en tout cas il ne faut pas faire le .value lorsqu'on joue avec les selectedIndex.

Discussions similaires

  1. fonction de verification de formulaire javascript
    Par samspitz dans le forum G�n�ral JavaScript
    R�ponses: 18
    Dernier message: 12/02/2009, 10h55
  2. Boucle JavaScript pour verif de formulaire
    Par VooDooNet dans le forum G�n�ral JavaScript
    R�ponses: 10
    Dernier message: 19/09/2006, 17h34
  3. Formulaire + javascript + W3C
    Par v4np13 dans le forum G�n�ral JavaScript
    R�ponses: 3
    Dernier message: 24/01/2006, 17h08
  4. [POO] V�rification d'un formulaire avant envoi
    Par KibitO dans le forum G�n�ral JavaScript
    R�ponses: 10
    Dernier message: 07/11/2005, 13h55
  5. R�ponses: 4
    Dernier message: 28/07/2004, 10h42

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