Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
752 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Création de champs "hidden" en utilisant DOM

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Création de champs "hidden" en utilisant DOM

n°814261
Solo13
Posté le 03-08-2004 à 22:25:37  profilanswer
 

Salut à tous,
 
J'vous explique mon problème :
 
J'ai un formulaire et je souhaite créer des champs "hidden" rattachés à ce formulaire. Pour ce faire, j'utilise le code suivant, où NameData est une variable définie plus tôt :
 
var TempData = document.createElement("hidden" );
var SetData = document.createAttribute("name" );
SetData.nodeValue = NameData;
TempData.setAttributeNode(SetData);

 
Le problème est qu'ensuite je bloque !!!...
 
Je ne réussis pas à rattacher mon champs "hidden" à mon formulaire ( pour pouvoir ensuite envoyer les données vers une page qui traitera tous les champs du formulaire ), ni à donner une valeur au champs "hidden" dont le nom est NameData...
 
Quelqu'un peut-il m'aider ?!?...
 
Merci d'avance...

mood
Publicité
Posté le 03-08-2004 à 22:25:37  profilanswer
 

n°814277
Solo13
Posté le 03-08-2004 à 22:44:46  profilanswer
 

Par exemple, j'ajoute un attribut id ( valeur de cet attribut " formulaire" ) à ma balise <form> et je pensais que cette ligne pourrait fonctionner mais non :
 
document.getElementById('formulaire').appendChild(TempData);
 
J'comprends pas...


Message édité par Solo13 le 03-08-2004 à 22:45:22
n°814285
gm_superst​ar
Appelez-moi Super
Posté le 03-08-2004 à 22:50:31  profilanswer
 

Solo13 a écrit :

var TempData = document.createElement("hidden" );


Tiens, je savais pas qu'il existait des éléments <hidden>


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
n°814298
simogeo
j'ai jamais tué de chats, ...
Posté le 03-08-2004 à 22:57:45  profilanswer
 

gm_superstar a écrit :

Tiens, je savais pas qu'il existait des éléments <hidden>


 
[:itm]
 
man hidden http://forum.hardware.fr/icones/icon12.gif


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°814311
Solo13
Posté le 03-08-2004 à 23:06:50  profilanswer
 

Ok, gm_superstar :whistle: , donc ce code là devrait-il mieux marcher ?!?... :
 
var TempData = document.createElement("input" );
TempData.setAttribute("type","hidden" );
TempData.setAttribute("name",NameData);
TempData.setAttribute("value","1" );

 
Appremment, ça ne marche pas, je ne réussis pas à récupérer la valeur de l'élément dont le nom est NameData...
 
Merci encore pour cet indice...


Message édité par Solo13 le 03-08-2004 à 23:08:21
n°814329
gm_superst​ar
Appelez-moi Super
Posté le 03-08-2004 à 23:17:22  profilanswer
 

Et après ? Tu l'ajoutes à ton formulaire au moins ?


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
n°814337
Solo13
Posté le 03-08-2004 à 23:25:04  profilanswer
 

Ben pour tout te dire je ne sais pas comment faire pour l'ajouter à mon formulaire :(  :??: ...
 
Mais pour vérifier si ça fonctionne j'ai créé un élément <span id="Test">Valeur</span> dont je modifie le contenu par :
 
document.getElementById('Test').firstChild.nodeValue=document.all[NameData].value;
 
Ca devrait marcher, même si je n'ajoute pas mon élément à mon formulaire, mais ça ne marche pas...


Message édité par Solo13 le 03-08-2004 à 23:25:47
n°814346
gm_superst​ar
Appelez-moi Super
Posté le 03-08-2004 à 23:32:43  profilanswer
 

Solo13 a écrit :

Ben pour tout te dire je ne sais pas comment faire pour l'ajouter à mon formulaire :(  :??: ...


ton_element.appendChild(TempData);
 

Solo13 a écrit :


Mais pour vérifier si ça fonctionne j'ai créé un élément <span id="Test">Valeur</span> dont je modifie le contenu par :
 
document.getElementById('Test').firstChild.nodeValue=document.all[NameData].value;
 
Ca devrait marcher


Ben non ça marche pas, tu tentes d'accéder à un élément d'un document où il n'a pas été ajouté. Pour l'instant il est toujours hors de l'arbre DOM du document, il n'existe que dans le contexte de ta fonction JS et sera détruit à la fin de celle-ci.
 
Ajoute aussi un "id" à ton élément ça évitera de recourir à l'infâme document.all


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
n°814351
Solo13
Posté le 03-08-2004 à 23:37:02  profilanswer
 

Donc si mon formulaire est du type <form id="formulaire">, ce qui suit devrait marcher ?!?...:  
 
document.getElementById('formulaire').appendChild(TempData);


Message édité par Solo13 le 03-08-2004 à 23:37:35
n°814353
Solo13
Posté le 03-08-2004 à 23:44:26  profilanswer
 

Yep ça a l'air de marcher...
 
Merci beaucoup pour ton aide gm_superstar...

mood
Publicité
Posté le 03-08-2004 à 23:44:26  profilanswer
 

n°814938
Solo13
Posté le 04-08-2004 à 14:57:19  profilanswer
 

Bon, je sais j'abuse un peu :D , mais est-ce que tu pourrais me dire s'il existe un truc pour avoir accès à ces éléments  :??: ?!?...
 
Je souhaiterais pouvoir afficher les valeurs des éléments ainsi créés sans avoir à soumettre un formulaire...
 
Sinon, merci encore pour ton aide hier soir :jap: ...


Message édité par Solo13 le 04-08-2004 à 14:58:21
n°815329
gm_superst​ar
Appelez-moi Super
Posté le 04-08-2004 à 22:09:00  profilanswer
 

Ben comme je l'ai dit, tu donnes un "id" à tes éléments et tu y accèdes avec getElementById()


Message édité par gm_superstar le 04-08-2004 à 22:09:26

---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
n°815382
Solo13
Posté le 04-08-2004 à 23:06:46  profilanswer
 

gm_superstar a écrit :


Ben non ça marche pas, tu tentes d'accéder à un élément d'un document où il n'a pas été ajouté. Pour l'instant il est toujours hors de l'arbre DOM du document, il n'existe que dans le contexte de ta fonction JS et sera détruit à la fin de celle-ci.


 
Donner un Id à ces éléments ( ceux créés par le code document.createElement en insérant le code TempData.setAttribute("id","Id_Element" ); ) me permettra donc d'y accéder ( par getElementById ) et d'afficher leur valeur, n'importe où sur le document, c'est ça ?!?...
 
Ce code là devrait donc marcher ?!?... :
 
document.getElementById('Test').firstChild.nodeValue=document.getElementById('Id_Element').getAttribute('value');
 
Et même si ça fait un peu lèche, encore merci pour tes conseils et ton temps...


Message édité par Solo13 le 04-08-2004 à 23:09:34
n°815400
gm_superst​ar
Appelez-moi Super
Posté le 04-08-2004 à 23:21:58  profilanswer
 

Solo13 a écrit :

Donner un Id à ces éléments ( ceux créés par le code document.createElement en insérant le code TempData.setAttribute("id","Id_Element" ); )


Pour celui là, il y a même un raccourci : tempData.id = "tonId";

Solo13 a écrit :

me permettra donc d'y accéder ( par getElementById ) et d'afficher leur valeur, n'importe où sur le document, c'est ça ?!?...


ouaip

Solo13 a écrit :


Ce code là devrait donc marcher ?!?... :
 
document.getElementById('Test').firstChild.nodeValue=document.getElementById('Id_Element').getAttribute('value');


Je sais pas comment est fait ton document HTML, mais niveau syntaxe ça m'a l'air correct.


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
n°815542
gatsusat
Posté le 05-08-2004 à 09:52:26  profilanswer
 

je me serait moins fait chier que toi
j'aurai foutu un <div style="visibility : hidden" id="MonDiv"></div>
 
Puis en javascript j'aurait fait un truc du genre :  
document.MonDiv.write('<input type="hidden" id="sonNom" name="sonNom" value="1">')
ca fait moins lisible je l'avoue
mais au moins tu es sur de faire ce que tu veux et de creer les élément de formulaire que tu veux.
 
Pour ma part je ne trouve presque aucune documentation sur la méthode CreateElement de l'objet Document

n°815913
Solo13
Posté le 05-08-2004 à 14:18:57  profilanswer
 

@ gm_superstar
Merci beaucoup, effectivement tout marche nickel...
 
@ gatsusat
Ben en fait, je veux pouvoir éliminer les éléments "hidden" ainsi créés, et je ne savais pas le faire avec ta méthode... Ceci étant dit, si tu as quelquechose à proposer, je suis preneur...
 
 
Sinon, encore une petite difficulté : Je souhaite afficher la valeur de ces éléments, qu'ils aient déjà été créés ( par exemple, je sais qu'un maximum de 30 éléments pourront être créés ) ou non ( et dans ce cas, j'affiche par exemple 0 ), mais je dois pouvoir tester si ces éléments ont déjà été créés...
 
J'ai trouvé une ou deux bidouilles qui me permettent de savoir quels sont les éléments créés, notamment en insérant dans mon document des variables dont la valeur change à la création de l'élément, mais j'aurais aimé savoir s'il existait une instruction simple et rapide permettant de savoir si un élément existe...


Message édité par Solo13 le 05-08-2004 à 20:34:00
n°816263
gm_superst​ar
Appelez-moi Super
Posté le 05-08-2004 à 20:33:34  profilanswer
 

gatsusat a écrit :

je me serait moins fait chier que toi
j'aurai foutu un <div style="visibility : hidden" id="MonDiv"></div>
 
Puis en javascript j'aurait fait un truc du genre :  
document.MonDiv.write('<input type="hidden" id="sonNom" name="sonNom" value="1">')
ca fait moins lisible je l'avoue


Oui et puis surtout le DIV sert à rien, vu que les <input type="hidden"> sont, par définition, non visibles.

gatsusat a écrit :


mais au moins tu es sur de faire ce que tu veux et de creer les élément de formulaire que tu veux.


Ben avec l'autre méthode aussi...

gatsusat a écrit :


Pour ma part je ne trouve presque aucune documentation sur la méthode CreateElement de l'objet Document


Bah c'est pas une méhode bien compliquée...
 
http://www.mozilla.org/docs/dom/do [...] ml#1025906
http://msdn.microsoft.com/workshop [...] lement.asp
http://www.w3.org/TR/2000/REC-DOM- [...] 2141741547


Message édité par gm_superstar le 05-08-2004 à 20:34:13

---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
n°816265
gm_superst​ar
Appelez-moi Super
Posté le 05-08-2004 à 20:35:30  profilanswer
 

Solo13 a écrit :

Sinon, encore une petite difficulté : Je souhaite afficher la valeur de ces éléments, qu'ils aient déjà été créés ( par exemple, je sais qu'un maximum de 30 éléments pourront être créés ) ou non ( et dans ce cas, j'affiche par exemple 0 ), mais je dois pouvoir tester si ces éléments ont déjà été créés...
 
J'ai trouvé une ou deux bidouilles qui me permettent de savoir quels sont les éléments créés, notamment en insérant dans mon document des variables dont la valeur change à la création de l'élément, mais j'aurais aimé savoir s'il existait une instruction simple et rapide permettant de savoir si un élément existe...


Ben si l'élément a été créé et ajouté au document, getElementById renvoi quelque chose :??:


Message édité par gm_superstar le 05-08-2004 à 20:35:55

---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
n°816272
Solo13
Posté le 05-08-2004 à 20:41:45  profilanswer
 

Ben s'il a été créé effectivement je n'ai pas de problème, c'est plutôt le cas où il n'a pas encore été créé qui m'ennuie... Je cherche une instruction qui m'indique justement que l'élément n'a pas été créé encore...
 
Je pensais que le code suivant fonctionnerait :
 
if ( document.getElementById(Id_Element) ) { affichage de la valeur }
else { on affiche un message qui indique que le champs n'a pas été créé }

 
en pensant que document.getElementById(Id_Element) envoyait true si l'élément existe et false sinon... Mais apparemment non...


Message édité par Solo13 le 05-08-2004 à 20:42:08
n°816286
simogeo
j'ai jamais tué de chats, ...
Posté le 05-08-2004 à 20:56:19  profilanswer
 

essayes :

Code :
  1. if ( document.getElementById(Id_Element) != null ) {
  2. //affichage de la valeur  
  3. }
  4. else
  5. {
  6. // on affiche un message qui indique que le champs n'a pas été créé  
  7. }


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°816471
Solo13
Posté le 06-08-2004 à 10:14:00  profilanswer
 

Ca l'fait simogeo, merci...
 
Bon ben merci beaucoup à tous les gars, tout marche comme je le souhaite...

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Création de champs "hidden" en utilisant DOM

 

Sujets relatifs
ASP erreur création d'un tableauProblème de jointure ORACLE avec comparaison de champs null
Problème création miniatureschamp hidden, formulaire, mail...
création icone zone notificationCréation d'un site... Frames ou pas?
caract tronqués apr espace lors passage form à autre avec input hiddenCréation d'une liste déroulante pour un fichier Excel en VBA
Exécuter une partie de code sur une même page en utilisant un boutonLancement d'une intro, création de cookie et détection...
Plus de sujets relatifs à : Création de champs "hidden" en utilisant DOM


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR