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 :

champ ajouté par innerHTML undefined sous firefox


Sujet :

JavaScript

  1. #1
    Membre régulier
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    104
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 104
    Points : 71
    Points
    71
    Par défaut champ ajouté par innerHTML undefined sous firefox
    Bonjour,
    j'ai un petit problème sur un formulaire dynamique qui se pose sous firefox et non sous internet explorer.
    Je vous passe les détails mais j'ai une liste déroulante que je crée dynamiquement suivant le choix dans une autre liste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <select id="forme" name="forme" onChange='remplir(this.form)' >
    					<option value="-">-- Shape of the pool --</option>
    					<option value="rectangulaire">Rectangular</option>
    					<option value="special" >Special shape</option>
    				</select>
    voilà la liste qui permet de créer l'autre et voilà un bout de la fonction appelée qui le fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function remplir(form)
    {
    document.getElementById("cryptage2").innerHTML ='<select id="sorte" name="sorte" onChange="remplirSpecial(form);" ><option value="-">-- Sort of special shape --</option></select>';
    }
    cette instruction se fait suivant certains tests mais peu importe.
    Je veux ensuite appeler la fonction remplirSpecial à la sélecction d'une option dans cette liste et il apparait que la liste déroulante n'existe pas(sous firefox).
    dans la fonction ou dans une autre n'importe où une fois la liste déroulante créee, en faisant un simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    i = form.sorte.selectedIndex;
    j'ai l'erreur forme.sorte undefined.

    merci de votre aide

  2. #2
    Membre régulier
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    104
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 104
    Points : 71
    Points
    71
    Par défaut
    J'ai remarqué qu'avec document.getElementById('sorte') existe et je peux le manipuler mais il n'apparait pas dans le formulaire alors que ma div est bien dedans.

    Donc le problème perdure puisque les champs créés dynamiquement comme ci dessus ne sont pas dans le formulaire pour firefox. sous IE aucun problème je récupère ensuite mes $_POST et tous les index sont définis

  3. #3
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    As-tu pensé à inspecter le DOM pour voir ton élément "sorte" et ses propriétés ?

    Ca peut lever des doutes. ^^

    (Quoi qu'il en soit, ce n'est pas pour dire du mal d'innerHTML mais bon... je remarque qu'avec les méthodes DOM de création/manipulation des éléments on est quand même moins emm**** )

    ...pour les linguistes et les curieux >>> générateur de phrases aléatoires

    __________________

  4. #4
    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 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onChange="remplirSpecial(form);"
    j'ai l'erreur forme.sorte undefined
    Normal, la variable form passée en paramètre de l'appel de la fonction est effectivement inconnue...
    Réfère toi à la ligne que tu as écrite juste avant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onChange='remplir(this.form)'
    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

  5. #5
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    bonjour,

    2 choses :
    - la première évite innerHTML pour insérer des nouveaux éléments dans ta page utilise plutôt le DOM :
    voilà un exemple http://javascript.developpez.com/tut...=page_5#LV-B-2

    - la seconde est qu'il est conseillé d'écrire dans le code HTML les événements en minuscules (onchange plutôt que onChange)

  6. #6
    Membre régulier
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    104
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 104
    Points : 71
    Points
    71
    Par défaut
    Merci pour vos réponses.
    J'ai simplement fait une belle anerie en fermant la balise form avant une div,une mauvaise imbrication en gros.

    Mais je vais prendre vos conseils en considération et refaire tout ça sans le innerHTML.

Discussions similaires

  1. [AJAX] Ajax "undefined" sous Firefox
    Par mess is lore dans le forum AJAX
    Réponses: 5
    Dernier message: 04/08/2010, 18h52
  2. [AJAX] Ajax passe sous IE, "undefined" sous Firefox
    Par franklin626 dans le forum AJAX
    Réponses: 22
    Dernier message: 04/08/2010, 11h08
  3. selectedIndex undefined sous Firefox
    Par silverjebs38 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/10/2009, 11h31
  4. Interpretation checkbox 'undefined' sous Firefox (fonctionne sous IE)
    Par jamesleouf dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 09/07/2008, 12h14
  5. event.keyCode undefined sous FireFox
    Par dupin40 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/03/2005, 11h15

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