11550 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Voila j'ai un probleme tout simple mais je l'arrive pas à la résoudre :
J'ai un formulaire HTML tout bete avec un input pour rentrer plusieurs E-mails :
<input type="text" name="mails[]" />

J'ai placé un lien a coté pour qu'on puisse ajouter un nouveau champs en javascript
function copyElement( str_copy, place )
{
	var list = document.getElementById(place);
	var item = list.appendChild(document.createElement('li'));
	item.innerHTML = str_copy;
};


<script  type="text/javascript">
function special_M() { copyElement('<input type="text" name="mails[]"/>', 'special_mail' ) }
</script>
<a onClick="special_M()">+ [ Ajouter un autre mail ]</a>


Donc visuellement en fait ca marche inpec sous Firefox et IE, j'ai bien un champs qui s'ajoute ou je veux, je peux rentrer les données c'est niquel.
Cependant lors de l'envoi de formulaire Firefox ne prend pas en compte les input ajouté ( j'en ai qu'un seul celui qui est la de base sans javascript ), IE6 lui les prends en compte, j'aimerais savoir donc comment faire fonctionner ce code sous FF ???

Sachant que je vous ai donné ici une fonction simplifié, copyElement permet de copier n'importe quel élément de mon formulaire.

ML
Modifié par -ML- (26 Nov 2006 - 14:53)
Salut,
-ML- a écrit :
<input type="text" name="mails[]" />
A mon avis, cette syntaxe n'est pas correcte pour des input de type text.

Il faudrait plutôt que tu utilises comme noms mail1, mail2, ...

Je n'en mettrai pas ma main à couper, mais...
J'ai déja utilisé cette syntaxe ( mail[] ) à plusieurs reprise sans javascript, ca fonctionne parfaitement sous tout type d'element du formulaire qu'il soit text ou non.

Le probleme d'apres moi viens du javascript, firefox n'interprete pas les données que je lui demande de rajouter malgré qu'au rendu ca marche ...

J'avoue pas trop comprendre pourquoi ?
Salut -ML-,

Je viens de tester ton bout de code dans FX et IE et il fonctionne parfaitement dans les 2 Smiley confus
Un mot pour Eldebaran : La syntaxe utilisant des crochets dans le nom est très pratique lorsque tu veux récupérer un tableau d'éléments côté serveur, elle est parfaitement autorisée.
Elle est même indispensable lorsque tu souhaites récupérer les éléments sélectionnés dans une liste déroulante à sélection multiple, ou les choix cochés dans une liste de checkboxes.
QuentinC a écrit :
Un mot pour Eldebaran : La syntaxe utilisant des crochets dans le nom est très pratique lorsque tu veux récupérer un tableau d'éléments côté serveur, elle est parfaitement autorisée.
Elle est même indispensable lorsque tu souhaites récupérer les éléments sélectionnés dans une liste déroulante à sélection multiple, ou les choix cochés dans une liste de checkboxes.
D'accord. Ce dont je doutais, comme je l'ai dit, était que l'on puisse l'utiliser pour les champs de type text.
Ah Smiley smile J'ai trouvé mon probleme.

Effectivement l'exemple fonctionne parfaitement, ce qui ma laissé perplexe vu que j'avais copié collé, j'en ai déduis que ca venait de ce qui était autour, mais alors pourquoi que sur le javascript inséré et que sous firefox :

La solution était simple mais pas facile a voir, j'avais mal mis ma balise de début et de fin de formulaire (mauvaise imbrication ) cad que je commencais un tableau, mettais un form terminais le tableau et terminais le form , pas bien !!!

Comme quoi si j'avais fait du full css, j'aurais pas eu ce probleme ( on s'embrouille vite dans tout le code quand il est long avec tout ces td / tr .

Bref merci quand meme pour les suggestions elle m'ont aidé a voir que y'avais pas d'erreur dans ce code Smiley smile

ML
QuentinC a écrit :
Non, on peut l'utiliser pour n'importe quoi.
Oui j'avais compris. Smiley cligne
-ML- a écrit :
Bref merci quand meme pour les suggestions elle m'ont aidé a voir que y'avais pas d'erreur dans ce code Smiley smile
Tant mieux. Dans ce cas-là, merci d'éditer ton sujet pour indiquer qu'il est résolu ! Smiley smile
Modifié par Eldebaran (21 Nov 2006 - 22:58)