Le innerHTML de Mozilla ne prend pas les contenus des champs

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
USA Mike
Arias
Messages : 3
Inscription : 22 mai 2007, 10:47

Le innerHTML de Mozilla ne prend pas les contenus des champs

Message par USA Mike »

Bonjour,

j'ai un bouton simple qui affiche le contenu innerHTML d'une DIV contenant des champs INPUT remplis.

Code : Tout sélectionner

alert(document.getElementById(madiv).innerHTML);
Sous IE tout-est-iok, je m'apperçois que le contenu des champs INPUT est bien contenu dans le innerHTML.
Mais ça ne fonctionne pas sous Firefox/mozilla qui oublie de prendre le contenu des champs INPUT.

y-a-t-il une astuce ou moyen différent pour récupérer l'intégralité innerHTML sous firefox ??

je suis un peu mal car je viens de lire ça :
As there is no public specification for this property, implementations differ widely. For example, when text is entered into a text input, IE will change the value attribute of the input's innerHTML property but Gecko browsers do not.
http://developer.mozilla.org/en/docs/DO ... .innerHTML

donc je pleure car je ne peux pas faire autrement et j'ai besoin de récupérer l'intégralité innerHTML.



Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.2) Gecko/20070221 SeaMonkey/1.1.1
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Ce n'est pas spécifique à Firefox, c'est du développement web. :wink:

Pour répondre à ta question, utilise le DOM ! Au moins là c'est standardisé, et tu sais à quoi t'attendre (même si ce n'est pas forcément implémenté à 100% partout non plus... mais la base est disponible sans souci !) :)

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3
USA Mike
Arias
Messages : 3
Inscription : 22 mai 2007, 10:47

ok

Message par USA Mike »

merci de votre réponse.

je ne peux pas utiliser le DOM car le nombre de champ INPUT est dynamique et à la voler.
Voilà ce que je souhaite faire :

j'ai une page qui permet de choisir/position les champs de recherche
ensuite le visiteur en rempli certain
sur l'appuie du bouton recherche, j'enregistre le contenu html (innerhtml) dans une variable hidden.
à la page des résultats, je raffiche sa sélection de champs/recherche et il peut encore en rajouter et refaire une recherche et raffiner encore indéfiniement....

Le nombre de champs n'est pas connu au départ et sera progressif. (par exemple l'admin peut décider d'ajouter des champs de recherche)

Cela fonctionne très bien sous IE grace au innerHTML qui me permet de ne pas me soucier de la structure d'arbre qu'impose le DOM.

donc je suis coincé....et je comprends pourquoi Google n'a pas mis en place cette solution maintenant car elle marche que sous IE.

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.2) Gecko/20070221 SeaMonkey/1.1.1
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Re: ok

Message par calimo »

USA Mike a écrit :merci de votre réponse.

je ne peux pas utiliser le DOM car le nombre de champ INPUT est dynamique et à la voler.
Et ?
C'est peut-être plus compliqué, mais on peut faire des boucles sur tous les champs...

Sinon, tu as essayé de forcer le remplissage des attributs value (je ne sais pas comment...) ? Ou bien tu veux dire qu'ils disparaissent complètement ?

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3
USA Mike
Arias
Messages : 3
Inscription : 22 mai 2007, 10:47

ok

Message par USA Mike »

Non les contenus .value des champs INPUT ne disaparaissent pas, ils sont bien là et passer en POST, seulement ils ne sont pas rapatrié dans un innerHTML...sous Firefox mais bel et heuresuement sous IE.



Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.2) Gecko/20070221 SeaMonkey/1.1.1
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message par Benoit »

Tu peux obtenir tous tes éléments input avec getElementsByTagName(), par exemple.

Cela dit, je ne vois pas pourquoi tu ne fais pas la génération de tes champs côté serveur puisque tu reçois leurs noms et leurs valeurs au moment de l'envoi du formulaire.
♫ Li tens s'en veit, je n'ai riens fais ;
Li tens revient, je ne fais riens. ♪
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités