Javascript/DOM ajout input/select en colonne dans un tableau

Javascript/DOM ajout input/select en colonne dans un tableau - HTML/CSS - Programmation

Marsh Posté le 12-07-2006 à 10:36:06    

Bonjour,
 
J'ai actuellement un petit prob d'affichage des noms dans mes balises option.
Je génère mon formulaire par du Javascript/DOM comme ceci :

Code :
  1. function addTimeCrit(row)
  2. {
  3. if(noCrit[row]<=2){
  4. var tbody = document.getElementById("nomTable" ).getElementsByTagName("tbody" )[0];
  5. var vrow = document.getElementById(row);
  6. var cell = document.createElement("td" );
  7. var sel =  document.createElement("select" );
  8. var opt1 = document.createElement("option" );
  9. var opt2 = document.createElement("option" );
  10. var opt3 = document.createElement("option" );
  11. var opt4 = document.createElement("option" );
  12. var opt5 = document.createElement("option" );
  13. opt1.setAttribute("value",">" );
  14. //opt1.setAttribute("name",">" );
  15. opt2.setAttribute("value","<" );
  16. opt3.setAttribute("value",">=" );
  17. opt4.setAttribute("value","<=" );
  18. opt5.setAttribute("value","!=" );
  19. var inp =  document.createElement("input" );
  20. inp.setAttribute("type","text" );
  21. inp.setAttribute("size",7);
  22. inp.setAttribute("name",row+"_crit"+noCrit[row]);
  23. inp.setAttribute("id",row+"_crit"+noCrit[row]);
  24. sel.setAttribute("name",row+"_comp"+noCrit[row]);
  25. sel.setAttribute("id",row+"_comp"+noCrit[row]);
  26. sel.appendChild(opt1);
  27. sel.appendChild(opt2);
  28. sel.appendChild(opt3);
  29. sel.appendChild(opt4);
  30. sel.appendChild(opt5);
  31. cell.appendChild(sel);
  32. cell.appendChild(inp);
  33. vrow.appendChild(cell);
  34. noCrit[row]++;
  35. }


 
Les > , < , >= ,<= , != ne s'affichent pas dans le select en HTML, please help
 
l'HTML et le javascript se trouve à cette adresse : http://gymway.celeonet.fr/other/Retest.html
Pour ceux qui veulent s'inspirer aussi de l'affichage du form en tableau, go ahead !! ;)
 
Merci d'avance,

Reply

Marsh Posté le 12-07-2006 à 10:36:06   

Reply

Marsh Posté le 12-07-2006 à 10:52:46    

Et comme ça?

Code :
  1. opt1.setAttribute("value","&gt;" );


 
edit: Et un lien un lire pour faire un setAttribute('name','XXX'):
http://www.easy-reader.net/archive [...] entations/


Message édité par anapajari le 12-07-2006 à 10:53:52
Reply

Marsh Posté le 12-07-2006 à 11:02:37    

Non le "&gt;" ne marche pas, ce n'est pas un problème d'affichage HTML, mais bien le fait que je passe par du javascript pour générer les options du select. Il doit me manquer quelque chose...
 
Si tu fais un clic droit>"view page info">forms>post sous Firefox, tu verras que les valeurs >, >= ,etc sont bien prises en compte, idem lorsque tu mets un input et que tu envoies le formulaire.  

Reply

Marsh Posté le 12-07-2006 à 11:08:09    

Code :
  1. opt1.value  = ">";

et ça devrait rouler ;)
par contre tu auras toujours ton problème sur le name!!!

Reply

Marsh Posté le 12-07-2006 à 11:27:54    

Non plus ..
en fait : opt1.value  = ">"; ne est l'équivalent de : opt1.setAttribute("value",">" );
 
En fait le input et le select/option sont différents en html :
 
le input avec ça :

Code :
  1. <input name="name" value="v_name">

      t'affichera "v_name" dans le input
 
alors que pour le select option :

Code :
  1. <select name="select" value="s_name">
  2. <option name="opt1" value="superieur">    &gt;   </option>


t'affichera le &gt; (qui est ">" comme tu me l'a dis)
 
Mon prob reste le même, comment passer ce &gt; en Javascript, qui n'est pas dans la balise <option> mais entre <option></option>
 
j'ai été un peu plus clair ?  hope so ;)

Reply

Marsh Posté le 12-07-2006 à 11:32:37    

ah oui j'avais rien lu en fait:

Code :
  1. opt1.appendChild(document.createTextNode('&gt;'));


Promis la prochaine fois je lis ;)

Reply

Marsh Posté le 12-07-2006 à 11:36:13    

GENIAL merci beaucoup ! j'avais bien galéré sur l'ensemble pour au final ne rien voir ;) là c'est beaucoup mieux :)
 
pour info en fait le "&gt;" ne passe pas, il faut mettre ">"

Code :
  1. opt1.appendChild(document.createTextNode('>'));


 
Thanks

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed