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

HTML Discussion :

[XHTML] Formulaires imbriqués interdits ?


Sujet :

HTML

  1. #1
    Membre du Club

    Inscrit en
    Juillet 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 13
    Points : 57
    Points
    57
    Par défaut [XHTML] Formulaires imbriqués interdits ?
    Bonjour,

    Je dois ajouter un peu d'AJAX dans une application existante. Dans l'appli, chaque page contient un grand formulaire dans lequel on insère tous les éléments.
    J'ai un composant AJAX que je "pose " au milieu de la page, est qui se présente sous la forme d'un formulaire. Bref, ça donne le code simplifié suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <form name="global">
    ...
     
        <form id="myComp">bla bla</form>
     
    ...
    </form>
    Le code Javascript cherche à acceder à la seconde form (document.getElementById("myComp")), mais sous Firefox 2.0, celà renvoi toujours null (sous IE 7 ça marche).
    Après recherche, il semblerait qu'imbriquer des formulaires ne soit plus autorisé (cf DTD du XHTML). Mais alors comment faire ?

    Est-t'il possible de mettre la seconde form en dehors de la première, mais de l'afficher à l'intérieur ?

    Merci de votre aide

  2. #2
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut

    Du moment que tu appelles ta form avec l'id, qu'elle soit dedans ou dehors c'est pareil.
    Sinon j'ai pas saisi ton problème.

  3. #3
    Membre du Club

    Inscrit en
    Juillet 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 13
    Points : 57
    Points
    57
    Par défaut
    Salut,

    Essaye ceci sous Firefox 1.5+ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <html>
    <head>
    </head>
    <body onload="alert(document.getElementById('form2'));">
      <form id="form1">
        <form id="form2">
        </form>
      </form>
    </body>
    </html>
    Ça doit te renvoyer null. Il semblerait que Firefox ne créé pas la seconde form. Alors que sous IE ça marche.

    Pourtant, ceci fonctionne (création dynamique de la seconde form) :

    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
    <html>
    <head>
    <script>
      function load() {
        var form1 = document.getElementById('form1');
        var form2 = document.createElement("form");
        form2.setAttribute("id","form2");
        form1.appendChild(form2);
      }
    </script>
    </head>
    <body onload="load(); alert(document.getElementById('form2'));">
      <form id="form1">
      </form>
     
    </body>
     
    </html>

  4. #4
    Membre éprouvé
    Avatar de viviboss
    Profil pro
    Inscrit en
    Août 2006
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2006
    Messages : 943
    Points : 1 248
    Points
    1 248
    Par défaut
    C'est bizarre, effectivement.

    Parce que j'ai une appli qui comporte un form, et plusieurs forms imbriqués, et ca marche très bien sous FireFRox 2, pour moi....(la validation de mes form se fait en javascript, mais moi j'utilise "ByName"....)

    c'est peut être une piste ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <form>
    <form>
    <form name="toto">
    .....
    <input type=button value="valider" onClick="submit(toto)">
    </form>
    </form>
    </form>
    Ca, ca marche.....

  5. #5
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 887
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 887
    Points : 16 320
    Points
    16 320
    Par défaut
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <mode_furtif>
       <description>
          Avoir deux formulaires imbriqués est sémantiquement incorrect.
       </description>
       <lien>
          http://web.developpez.com/faq/html/?page=FORMULAIRE#FORMULAIRE_imbrique
       </lien>
    </mode_furtif>

  6. #6
    En attente de confirmation mail
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2002
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2002
    Messages : 314
    Points : 265
    Points
    265
    Par défaut
    si c'est juste un formulaire à "afficher" au milieu d'un autre, mets en un dans des <div> et changes sa position avec du CSS ?

  7. #7
    Membre du Club

    Inscrit en
    Juillet 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 13
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par Bisûnûrs
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <mode_furtif>
       <description>
          Avoir deux formulaires imbriqués est sématiquement incorrect.
       </description>
       <lien>
          http://web.developpez.com/faq/html/?page=FORMULAIRE#FORMULAIRE_imbrique
       </lien>
    </mode_furtif>
    C'est bien ce qui me semblait, mais je n'avais pas trouvé la confirmation. Merci.

    Citation Envoyé par bigsister
    si c'est juste un formulaire à "afficher" au milieu d'un autre, mets en un dans des <div> et changes sa position avec du CSS ?
    C'est vers ce genre de solution que je voudrais me diriger. Est- ce que tu aurais un exemple STP ? Je ne suis vraiment pas une star du CSS.

    Merci encore.

  8. #8
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    tu peux le faire avec position:relative (ou position:absolute) et en jouant sur les attributs left, right, top, bottom.

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

Discussions similaires

  1. problème de formulaires imbriqués
    Par nocoment dans le forum Langage
    Réponses: 6
    Dernier message: 13/06/2007, 12h07
  2. 2 formulaires imbriqués
    Par harlock59 dans le forum Langage
    Réponses: 9
    Dernier message: 16/06/2006, 13h30
  3. 2 formulaires imbriqués
    Par Invité dans le forum Langage
    Réponses: 16
    Dernier message: 11/05/2006, 08h54
  4. formulaires imbriqués
    Par Nounoursonne dans le forum Langage
    Réponses: 34
    Dernier message: 18/11/2005, 14h18
  5. probleme deux formulaires imbriqués
    Par rony dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 21/06/2005, 18h19

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