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 :

Formulaire et plusieurs bouttons avec "onclick"


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 134
    Par défaut Formulaire et plusieurs bouttons avec "onclick"
    Bonjour,

    j'ai un problème depuis 2h et malgré mes recherches sur le web je ne trouve aucune solution.. j'ai donc un formulaire tout ce qu'il y a de plus bête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <form method="post" name="formulaire" action='page.php'>
    <input type="button" value="options" id="action_options" onClick="action(this.id)"/>
    <input type="button" value="Charger" onClick="formulaire.submit()"/>
    </form>
    Vous l'aurez compris, le premier bouton fait appel à la méthode action(id). Cette méthode passe un display d'un <div> de ma page de "none" à "block".

    Je souhaite également envoyer ce formulaire à 'page.php' avec le 2ème bouton (le formulaire n'est pas complet ici, j'ai également des zones de texte dedans).

    Mon problème : le submit fonctionne, mais l'appel à la fonction 'action(id)' ne se fait pas! Pourtant ma fonction fonctionne quand je passe mon 1er bouton en dehors du formulaire! Mais d'où vient le problème ici? Ce n'est pas interdit d'avoir 2 boutons avec un qui submit et un autre normal dans un formulaire quand même?...

    Merci de votre aide

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    ça dépend en grande partie du code de ta fonction action() ...

    A+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 134
    Par défaut
    Voilà ma fonction action() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function action(id){	
    	if(id=="action_options"){
    		document.getElementById('options_5530').style.display='block';	
    	}else if(id=="action_Equipements"){
    		document.getElementById('options_Equipements').style.display='block';	
    	}else if(id=="action_Karma"){
    		document.getElementById('options_Karma').style.display='block';	
    	}	
    }

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Ben oui, mais l'id que tu passes en paramètre n'est pas dans la liste

    Ton code fonctionne farpaitement

    A+

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 134
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Ben oui, mais l'id que tu passes en paramètre n'est pas dans la liste

    Ton code fonctionne farpaitement

    A+

    Excuses-moi, j'ai modifié l'id entre-temps quand j'ai recopié mon code ici Je le corrige dans mon post plus haut!

    Comme je l'ai dit dans mon premier post, si je déplace le bouton 1 (celui qui appelle action(id)) en dehors du formulaire, là il fonctionne
    ...

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 134
    Par défaut
    Résolu!!!

    Alors voilà ce que j'ai fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form method="post" name="formulaire" action='page.php'>
    <input type="button" value="options" id="action_options" onClick="document.getElementById('options_5530').style.display='block';"/>
    <input type="button" value="Charger" onClick="formulaire.submit()"/>
    </form>
    J'ai donc du mettre directement le contenu de ma fonction action() dans le onClick du boutton... Alors celà prouve bien que la fonction n'était pas appelé ici.. (et pourquoi, ça je ne sais pas :/ Si quelqu'un a dailleurs tout de même une solution je suis preneur)
    Merci encore E.Bzz

  7. #7
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par ganguill Voir le message
    Comme je l'ai dit dans mon premier post, si je déplace le bouton 1 (celui qui appelle action(id)) en dehors du formulaire, là il fonctionne
    Arf !
    D'où l'intérêt de ne jamais utiliser les termes du langages pour identifier des éléments, des variables, des fonctions
    Tu as essayé de nommer ta fonction autrement ?

    A+

  8. #8
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par ganguill Voir le message
    J'ai donc du mettre directement le contenu de ma fonction action() dans le onClick du boutton...
    Cf. au-dessus et renomme ta fonction : c'est plus propre

    A+

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 134
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Arf !
    D'où l'intérêt de ne jamais utiliser les termes du langages pour identifier des éléments, des variables, des fonctions
    Tu as essayé de nommer ta fonction autrement ?

    A+
    Incroyable, c'était ça Effectivement il y avait un conflit avec le mot "action"! J'y ferais attention la prochaine fois (et 2h de perdu à cause de ça, c'est génial )

    Merci énormément

  10. #10
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par ganguill Voir le message
    (et 2h de perdu à cause de ça, c'est génial )
    C'est comme ça qu'on s'en souvient

    A+

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

Discussions similaires

  1. Formulaire en plusieurs parties ? (avec controle des erreurs)
    Par fabseven dans le forum Ruby on Rails
    Réponses: 0
    Dernier message: 04/04/2008, 16h23
  2. Réponses: 2
    Dernier message: 07/08/2007, 16h24

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