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 :

[HTML] problème : innerHTML (bizarre)


Sujet :

HTML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 256
    Par défaut [HTML] problème : innerHTML (bizarre)
    Bonsoir les gars,

    voilà voilà mon problème

    j'ai voulu m'amuser avec de l'ajax hihi et je m'en suis mit plein les yeux bah quel idiot de l'ajax dans les yeux c'est mauvais parce que c'est du javel on ne met pas je javel dans les yeux mais dans l'eau

    hoo c'est on a compris la feinte lol

    plus sérieusement

    en modifiant le contenu d'une balise P qui contient un formulaire avec la propriété "innerHTML",voilà que le formulaire ne s'en retrouve pas du tout effacé mais que le texte y est ajouter.
    alors que quand je fait la meme chose avec une balise div le contenu de la balise div elle est bien vidé du formulaire et remplacer par le texte

    est ce que quelqu'un pourrait m'expliquer ce phénomène pour moins spécial et si il y a d'autre truc dans le genre j'aimerai avoir de plus amples informations

    mais un exemple est plus parlant il vous suffit de copier coller ce bout de code dans un nouveau fichier vide et vous verrez le resultat

    MERCI d'avance

    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
     
    <html>
    <head>
    <script type="text/javascript">
    function changeForm()
    {
            document.getElementById('Form1').innerHTML="Ici le formulaire change";
            document.getElementById('Form2').innerHTML="Ici le formulaire change PAS!!!";
    }
    </script>
    </head>
    <body>
     
    <div id="Form1">
    		<form>
    	<input type="button" value="Formulaire 1" />
    		</form>
    </div>
     
    <p id="Form2">
    		<form>
    			<input type="button" value="Formulaire 2" />
    		</form>
    </p>
    <input type="button" onClick="changeForm()">
    </body>
    </html>
    Bonne soirée à tous

  2. #2
    Membre éclairé Avatar de hellspawn_ludo
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    257
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 257
    Par défaut
    Bonjour programaniac,

    Je viens de tester ton code et le innerHTML a bel et bien effacé les 2 formulaires. Je vois donc les 2 phrases de la fonction.

    Alors, où est le hic ??

  3. #3
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Citation Envoyé par hellspawn_ludo Voir le message
    Bonjour programaniac,

    Je viens de tester ton code et le innerHTML a bel et bien effacé les 2 formulaires. Je vois donc les 2 phrases de la fonction.

    Alors, où est le hic ??
    pas chez moi... Avec FF2, le contenu du paragraphe 2 (Form2) s'ajoute bien au contenu déjà présent.

  4. #4
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    j'ai compris pourquoi. Pour cela mets une bordure sur ton P et regarde l'arborescence de ta page en utilisant l'inspecteur DOM de FF.

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
     
    <html>
    <head>
    <script type="text/javascript">
    function changeForm()
    {
            document.getElementById('Form1').innerHTML="Ici le formulaire change";
            document.getElementById('Form2').innerHTML="Ici le formulaire change PAS!!!";
    }
    </script>
    </head>
    <body>
     
    <div id="Form1">
    		<form>
    			<input type="button" value="Formulaire 1" />
    		</form>
    </div>
     
    <p id="Form2" style="border: 1px #000000 solid">
    		contenu de P
    		<form>
    			<input type="button" value="Formulaire 2" />
    		</form>
     
    </p>
    <input type="button" onClick="changeForm()">
    </body>
    </html>

    Le form contenu dans p n'est pas encadré par la bordure noire. Seul le texte ("contenu de P") est encadré. En regardant l'arborescence de ta page, on constate que le second form n'est pas dans le p !!.

    Ce qui explique que document.getElementById('Form2').innerHTML="Ici le formulaire change PAS!!!"; "ajoute" le texte sans remplacer le formulaire.

    p ne peut pas contenir de balises de type block (p, form, div, table...).

  5. #5
    Membre éclairé Avatar de hellspawn_ludo
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    257
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 257
    Par défaut
    Auteur,

    Au temps pour moi. Je n'avais pas essayé avec FF.

    C'est tout de même chiant cette espèce de non compatibilité.

  6. #6
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Essaie de mettre un <SPAN><DIV> avant ta FORM + refermer les balises à la fin

    C'est tout aussi illégal mais peut-être que cela passera mieux (car le SPAN peut être dans le P, et que même si on peut théoriquement pas mettre de DIV dans un SPAN, ca a toujours marché, et qu'on peut bien évidemment mettre un FORM dans un DIV

    Mais je n'ai pas testé.
    Tiens moi au courrant si ca marche ou pas.

Discussions similaires

  1. [HTML] problème d'espace sous IE
    Par dug dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 12/04/2005, 21h53
  2. Problème innerHTML sur div !!!
    Par aburner dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 27/01/2005, 09h23
  3. [HTML]Tableau tout bizarre
    Par Kokito dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 02/12/2004, 18h50
  4. [HTML] problème avec un text area
    Par krfa1 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 29/10/2004, 11h37
  5. [HTML] Problème d'envoi de formulaire
    Par autumn319 dans le forum ASP
    Réponses: 26
    Dernier message: 03/09/2003, 10h06

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