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 :

onclik et condition if


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 13
    Points : 12
    Points
    12
    Par défaut onclik et condition if
    Bonjour

    je travail sur un formulaire avec plusieurs submit et une fonction javascript qui vérifie les champs ou non du formulaire en fonction du submit.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function valider(f) {
     
    		if( document.getElementById('demo').onclick ){
    			return true;
    		}
     
     		else if (f.email.value == '') {
    			alert('Email empty !'); 
    			return false;
     		}
     
    		else {
    			return true;
    		}
    Dans cette exemple (qui ne marche pas) j'aimerais que lorsque le client clic sur le bouton "demo" la fonction valider() prenne la valeur 'true' et envoie le formulaire au script php. Si jamais le client clique sur l'autre bouton, je vérifie qu'il a bien entré le mail, si c'est le cas on lance la suite sinon une alerte javascript.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <form method='post' action='/remap-dev/script/runtime.php' enctype='multipart/form-data' target=_blank onsubmit='return valider(this)'>
    	<li style='list-style-type:none'>
    		<label>Your e-mail adress : </label>
    		<input type='text' name='email' /> (required) 
    	</li>
    	<li style='list-style-type:none'> 
    		<input type='submit' name='run' value='Run' id='run'>
    		<input type='submit' name='demo' value = 'Demo' id='demo' >
    	</li>
    </form>

    Est-il possible d'avoir une tel architecture ?
    - Si oui on sont mes erreurs ?
    - Si non qu'elles sont mes autres possibilités ?

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if( document.getElementById('demo').onclick ){
        return true;
    }
    qu'essaies tu de faire avec ce code ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 13
    Points : 12
    Points
    12
    Par défaut
    J'essaye de rendre la variable du formulaire vraie lorsque je clic sur le bouton de demo (je sais que c'est faux, normalement il doit y avoir une fonction après mais c'était pour expliquer mon problème)

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Tu peux donc faire un truc simple
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type='submit' name='demo' value = 'Demo' id='demo' onclick="this.form.test=true" >
    et dans la fonction faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function valider(f) {
        if (f.test) { //document.getElementById('demo').onclick ){
            f.test = false; // pour prochain appel
            return true;
        } else if (f.email.value == '') {
            alert('Email empty !');
            return false;
        } else {
            return true;
        }
    }

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 13
    Points : 12
    Points
    12
    Par défaut
    ça marche super !
    Au poils !

    Pourrais tu confirmer ma compréhension.

    En faite tu attributs à une variable 'test' de la fonction valider() la valeur 'true' , dont on vérifie l'exactitude qui, si est vraie deviens fausse pour le suivant ?

  6. #6
    Membre confirmé Avatar de freddou17
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2013
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 341
    Points : 566
    Points
    566
    Par défaut
    Slt,

    De ce que j'ai compris, je ferrais quelque chose du genre

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <form method='post' id="monForm" action='/remap-dev/script/runtime.php' enctype='multipart/form-data' target=_blank>
    	<li style='list-style-type:none'>
    		<label>Your e-mail adress : </label>
    		<input type='text' name='email' /> (required) 
    	</li>
    	<li style='list-style-type:none'> 
    		<input type='button' name='run' value='Run' id='run' onclick="isDemoOuRun(this.value)">
    		<input type='button' name='demo' value = 'Demo' id='demo' onclick="isDemoOuRun(this.value)">
    	</li>
    </form>

    ton js

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function isDemoOuRun(btnValue) {
       var myForm = document.getElementbyId("monForm");
       if("Demo" == btnValue){
            myForm.submit();
       }else if (myForm.email.value == '') {
            alert('Email empty !');
            return false;
        } else {
            myForm.submit();
        }
       }
    }
    Code non testé mais tu devrais pouvoir obtenir un comportement proche de ce que tu as décrit (enfin de ce que j'ai compris)

    ++
    "Aucun de nous ne sait ce que nous savons tous, ensemble."
    Lien vers mon appli Funcash n'hésitez pas à donner votre avis

  7. #7
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Pas exactement, on affecte à la FORM, this.form, une propriété test que l'on passe à true si appui sur BUTTON démo.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 13
    Points : 12
    Points
    12
    Par défaut
    Merci de l'apport supplémentaire.

    Plus j'ai de façon de coder ce que je veux faire, plus j’apprends

    Edit : Merci pour la précision NoSmoking

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MYSQL] conditions et requetes
    Par sebos63 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 26/02/2004, 16h41
  2. Condition sur debug et release
    Par xave dans le forum MFC
    Réponses: 3
    Dernier message: 04/02/2004, 15h04
  3. Condition et contenu TImage
    Par Detlev_linux dans le forum Langage
    Réponses: 6
    Dernier message: 23/12/2003, 01h00
  4. ListBox OnClik
    Par Fry dans le forum C++Builder
    Réponses: 3
    Dernier message: 08/11/2003, 15h42
  5. boucle avec condition d'arret changeante
    Par NicoH dans le forum Langage
    Réponses: 3
    Dernier message: 10/06/2003, 11h48

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