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

jQuery Discussion :

Formulaire dom javascript


Sujet :

jQuery

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    501
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 501
    Points : 102
    Points
    102
    Par défaut Formulaire dom javascript
    Bonjour les amis,

    J'utilise la focntion serialize de javascript pour serialize mon formulaire:

    Donc je faisais cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var formulaire = document.getElementById('test');
    puis serialize(formulaire )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    console.log(serialize(formulaire ));
    j obtient bien:
    op=e-mail&e-mail=monemail%40free.fr
    donc cela est magnifique

    mais je me suis rendu compte par hasard que si je fait directement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    console.log(serialize(form));
    ca fonctionne aussi:

    j obtient aussi:
    op=e-mail&e-mail=monemail%40free.fr
    Donc je comprend pas comment il retrouve le bon formulaire alors que dans ma page il y en a plusieurs
    Une idée les amis
    Voici mon formulaire:
    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
     <form id="test" method="POST" action="">
        <table cellspacing="2" cellpadding="6" class="showbox">
            <tr>
                <td style="vertical-align:top;"><label for="e-mail">Adresse e-mail :</label></td>
                <td style="vertical-align:top;">
                    <input type="text" size="40" id="e-mail" name="e-mail" />
                    <div id="email-error" style="visibility:hidden;">L'adresse e-mail n'est pas valide</div>
                </td>
            </tr>
            <tr>
                <td><input type="hidden" name="op" value="e-mail" /></td>
                <input type="button" value="valider">
            </tr>
        </table>
    </form>

  2. #2
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    J'utilise la focntion serialize de javascript
    C'est assez surprenant vu qu'elle existe pas...
    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

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    501
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 501
    Points : 102
    Points
    102
    Par défaut
    Si l'ami c'est une librairie juste pour la fonction:

    <script type="text/javascript" src="js/serialize-0.2.js"></script>

    plus précisement dans mon input button j'ai la fonction suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    onclick=";
     
     
    console.log(form);//<form id="test" action="" method="POST">
    console.log(serialize(form));//op=e-mail&e-mail=monemail%40free.fr
     
    $.ajax({
      url: '/sendCart',
      cache: false,
      type: 'POST',data: serialize(form),success: function(data){$('#AlertPanelEmail').html(data);},error: function() { alert('Impossible de charger la requête Ajax'); }
    });
    return false;"
    mais en utilisant je jquery du genre:
    <input type="button" value="valider" id="monbutton">
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $('#monbutton').on('click', function(){
     
    console.log(form);// form is not defined
    Donc dans le cas onclick en focntion js il connais "form" et en jquery il me dit indefined.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
         <input type="button" value="valider" id="te"  onclick="; console.log(serialize(form));return false;">//op=e-mail&e-mail=monmail%40free.fr
    et si je fais ceci form est indefined
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <input type="button" value="valider" id="te"  >
    <script>
     
        $('#te').on('click', function(){
     
        console.log(serialize(form));
    });
    </script>
    Donc comment est retrouver "form" dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick="console.log(serialize(form)"

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    501
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 501
    Points : 102
    Points
    102
    Par défaut
    j'ai résolu le problème si cela intéresse quelqu'un

    le problème venait du chargement des pages, je rechargeais seulement une partie du html vu que c'est de l'ajax, donc l'élément form restait existant.

    Après un rechargement total du layout j'ai bien constater au premier chargement que le form n'existait pas:

    ReferenceError: form is not defined
    et si le remet par la suite puis réexcute mes fonction ajax maintenant il est connu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    console.log(form);// <form id="test" action="" method="POST">
    il faut donc que j'utilise bien un identifiant pour mon formulaire que ceci:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var form = document.getElementById('test');
     
     console.log(form)
    Merci quand même les amis

Discussions similaires

  1. Formulaire DOM JavaScript
    Par chlock62 dans le forum jQuery
    Réponses: 2
    Dernier message: 12/05/2014, 15h10
  2. [DOM] création d'un formulaire via javascript et envoi des données
    Par Adrilo dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/03/2009, 12h14
  3. Impossible d'envoyer un formulaire avec javascript
    Par Mimi Bulles dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 14/11/2005, 20h37
  4. [XML][XSL][DOM][JAVASCRIPT]melanger le tout, laisser reposer
    Par mitsein dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 16/07/2004, 16h56

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