Bonjour je ne connais pas beaucoup de choses en javascript.
J'ai un formulaire et à un moment j'ai un petit + qui déroule des champs input texte supplémentaires.
J'ai commencé à faire ça avec innerHtml mais j'ai vu que ça ne marchait pas sur firefox (que sur IE) et on m'a dit :"innerHtml c'est mal!!".
Comme je suis quelqu'un de pas contrariante, j'ai voulu essayer avec le DOM que je découvre.
Résultat : rien sous IE, ça marche sous Firefox. MAIS, dans la console d'erreur de Firefox ça me dit : "ajoutForm is not defined". Ce qui expliquerait que ça ne marche pas sous IE. Firefox a une erreur mais exécute quand même le script.
Pour commencer je n'ai créé avec le DOM que la première zone input pour voir si j'arrivais déjà à faire ça. J'ai suivi la méthode d'1 des FAQ de ce site que je trouvais bien expliquée.
Je vous mets la partie de ma page où doit s'insérer la partie du formulaire créée avec le DOM :
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 function ajoutZones() { // recherche du noeud parent var divParent = document.getElementById('ajoutForm'); // création des nouveaux noeuds var nveauField = document.createElement('fieldset'); var nveauLegend1 = document.createElement('legend'); var nveauParagraphe1 = document.createElement("p"); var nveauLabel1 = document.createElement("label"); var nveauInput1 = document.createElement("input"); // paramétrage des nouveaux noeuds nveauLegend1.appendChild(document.createTextNode("INFOS :")); nveauLabel1.appendChild(document.createTextNode("Nom ou pseudo :")); nveauParagraphe1.appendChild(nveauLabel1); nveauLabel1.for = 'nomArtiste'; nveauParagraphe1.appendChild(nveauInput1); nveauInput1.type = 'text'; nveauInput1.name = 'nomArtiste'; nveauInput1.id = 'nomArtiste'; // raccord des noeuds nveauField.appendChild(nveauLegend1); nveauField.appendChild(nveauParagraphe1); divParent.appendChild(nveauField); }
Il y a donc ce div ajoutForm que j'ai créé vide pour que le nouvel input s'insère là. En fait je me dis que l'erreur vient peut-être de là mais je n'arrive pas à trouver pourquoi il me dit que ajoutForm (nom de mon id) n'est pas défini.
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 <form method="post" action="controleurProgramme.php"> <?php include 'listeArtistes.php'; ?> <p><input type="radio" name="porteur" value="oui" id="oui"/><label for="oui">Artiste porteur :</label></p> </fieldset> <p><input type="hidden" name="idProg" value="<?php echo $id ?>"/></p> <p> <label>Autre artiste :</label> <input type="button" name="ajout" value="+" onclick="ajoutZones()" /> </p> <div id="ajoutForm"> </div> <p> <input type="submit" name="valider" value="Valider"/><input type="reset" value="Réinitialiser"/> </p> </form>
PS : Info supplémentaire : message d'IE : identificateur attendu
Partager