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 :

Validation de formulaire par lien et lancement de fonction


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 72
    Par défaut Validation de formulaire par lien et lancement de fonction
    Bonjour,

    Je suis débutant en Javascript et je bute sur un petit problème. J'aimerais qu'après avoir validé un formulaire, une fonction soit lancée.
    Ce formulaire j'aimerais pouvoir le valider à l'aide d'un lien et non d'un bouton.

    Avec un bouton, cela fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" value="Valider" onClick="add(this.form)">
    Mais je n'arrive pas à trouver l'équivalent, mais en lien. Si je fais ceci, je ne peux pas récupérer les informations dans la fonction.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="#" onClick="add(this.form)" alt="Ajouter au panier">Ajouter au panier</a>
    Pouvez-vous m'aider ?

    Merci beaucoup d'avance !

  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,

    Essayez toujours:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onClick="add(this.form); return false;"

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    il faudrait que l'on sache ce que fait le fonction add...

    il est déja maladroit d'utiliser le onclick du bouton submit, il est préférable d'utiliser le onsubmit du formulaire.
    En effet l'appui sur le bouton submit lance l'action du formulaire, et par conséquent si l'action du form pointe sur une url, on quitte la page.
    Bien que le onclick s'exécute avant dans l'ordre des évènement rien ne garantit que la fonction lancée dans le onclick soit terminée avant de quitter la page.
    Le onsubmit permet lui d'attendre la fin de la fonction lancée avant de quitter la page.

    pour ce qui est de declencher une fonction sur une balise a ... il ne faut pas oublier d'inhiber le href...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <a href="#" onclick="mafonction(); return false;">
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 72
    Par défaut
    Merci pour vos réponses. En ajoutant, "return false", je n'ai rien de mieux. Rien ne se passe en cliquant sur le lien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="#" onClick="add(this.form); return false;" alt="Ajouter au panier">Ajouter au panier</a>
    La fonction add est pour l'instant toute simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function add(formulaire) {
     
    	var ref = formulaire.qnty.value;
    	var label = formulaire.item_title.value;
    	var qt = formulaire.qnty.value;
    	var price = formulaire.price_id.value;
     
    	alert(label+", "+ref+", "+qt+", "+price);
     
     
    }

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    1) une syntaxe plus rigoureuse évite les soucis...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.fomrs['nomform'].elements['nomelement']
    2) tu n'as pas d'alert ??

    onclick pas de C majsucule ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 72
    Par défaut
    Je vous donne ici le lien du formulaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <form name="ajouter_panier">
    	<input type="hidden" name="item_title" value="Test"> 
    	<input type="hidden" name="item_number" value="">						
    	<input type="hidden" name="price_id" value="3.00>
    	<input type="hidden" name="expanded" value="0"> 
    	<b></b> <input type="text" size=1 name="qnty" value="1" style="font-size:8pt;"> fois pour <span class="menu-price">CHF 3.00</span><a href="#" onClick="add(this.form); return false;" alt="Ajouter au panier">Ajouter au panier</a>
    <input type="button" value="Ajouter au panier" onClick="add(this.form);">
     
    </form>

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 72
    Par défaut
    Nos messages se sont croisés.

    Citation Envoyé par SpaceFrog Voir le message
    1) une syntaxe plus rigoureuse évite les soucis...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.fomrs['nomform'].elements['nomelement']
    2) tu n'as pas d'alert ??

    onclick pas de C majsucule ...
    Non, je n'ai pas d'alerte avec le lien. Par contre, avec le bouton, oui.

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    regarde la coloration syntaxique ...
    manque un "
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 72
    Par défaut
    Oui, j'ai vu, mais c'est seulement dans le message, car j'ai dû l'adapter un peu. Je viens de corriger et tester exactement le code ci-dessous et le message s'affiche lorsque je clique sur le bouton, mais pas lorsque je clique sur le lien....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <form name="ajouter_panier">
    	<input type="hidden" name="item_title" value="Test"> 
    	<input type="hidden" name="item_number" value="">						
    	<input type="hidden" name="price_id" value="3.00">
    	<input type="hidden" name="expanded" value="0"> 
    	<b></b> <input type="text" size=1 name="qnty" value="1" style="font-size:8pt;"> fois pour <span class="menu-price">CHF 3.00</span><a href="#" onclick="add(this.form); return false;" alt="Ajouter au panier">Ajouter au panier</a>
    <input type="button" value="Ajouter au panier" onClick="add(this.form);">
     
    </form>

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    	   "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Nouvelle page 1</title>
     
    <script type="text/javascript">
    function addto(formulaire) {
     
    	var ref = document.forms['ajouter_panier'].elements['item_number'].value;
    	var label = document.forms['ajouter_panier'].elements['item_title'].value;
    	var qt = document.forms['ajouter_panier'].elements['qnty'].value;
    	var price = document.forms['ajouter_panier'].elements['price_id'].value;
     
    	alert(label+", "+ref+", "+qt+", "+price);
    }
    </script>
    <style type="text/css">
    fieldset {
    min-height: 300px;
    }
     
    fieldset {
    height: 300px;
    }
    </style>
    </head>
     
    <body>
    <form name="ajouter_panier" action="#">
    	<input type="hidden" name="item_title" value="Test" /> 
    	<input type="hidden" name="item_number" value="" />						
    	<input type="hidden" name="price_id" value="3.00" />
    	<input type="hidden" name="expanded" value="0" /> 
    	 <input type="text" size=1 name="qnty" value="1" style="font-size:8pt;" /> fois pour <span class="menu-price">CHF 3.00</span><a href="#" onclick="addto(); return false;" alt="Ajouter au panier">Ajouter au panier</a>
    <input type="button" value="Ajouter au panier" onclick="addto();">
     
    </form> </body>
     
    </html>
    c'est this.form qui coinçait
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 72
    Par défaut
    Parfait, merci beaucoup ! Je viens de trouver une autre solution, mais je crois que vais prendre la tienne. Mais ma solution ne marche que lorsque l'on veut utiliser un image pour le lien. Mais c'est ce que je voulais, de toute façon.

    Ma solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <INPUT TYPE="IMAGE" SRC="images/add.gif" alt="Ajouter au panier" BORDER="0" onClick="add(this.form); return false;">

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

Discussions similaires

  1. [XHTML 1.0] lien non idempotent (pour valider un formulaire par exemple)
    Par pokraka dans le forum Balisage (X)HTML et validation W3C
    Réponses: 0
    Dernier message: 18/04/2010, 08h29
  2. valider un formulaire par mail
    Par guillaume2vo dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 16/09/2006, 09h07
  3. [W3C] valider un formulaire par W3C
    Par 18Marie dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 25/06/2006, 19h04
  4. Valider un formulaire par un lien et non par un bouton
    Par budiste dans le forum Langage
    Réponses: 2
    Dernier message: 14/12/2005, 11h58
  5. Valider un formulaire par une image
    Par Fleep dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 31/10/2004, 01h50

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