ugrás a tartalomhoz

Legördülő űrlap lista bővítése JavaScripttel

attila0001 · 2006. Júl. 25. (K), 11.50
Hello

Van egy objektomom
  1. <select multiple name="infop[]">  
  2. <option value="2">2  
  3. <option value="5">5  
  4. <option value="4">4  
  5. </select>  
Szeretnék hozzáadni a Javascript segítségével még plusz elemeket 2 db text ből az egyik lenne a select labelje a másik az értéke fontos hogy az objeltumnak infop[] legyen a neve

Köszönöm
 
1

DOM megoldás

zsepi · 2006. Júl. 25. (K), 12.07
szia,
nem értem, hogy mit értesz
2 db text ből
alatt... de ha azt megoldod, akkor az alábbi fügvénnyel tudsz új option elemeket hozzáadni a paraméterként adott selecthez
  1. <script type="text/javascript">  
  2. // selectElement - a select dom node  
  3. // valueText - az option uj erteke  
  4. // displayText - az option felhasznalo altal latott erteke  
  5. function addNewOptionViaDom (selectElement, valueText, displayText) {  
  6.   var newOption = document.createElement('OPTION');  
  7.   newOption.value = valueText;  
  8.   var newOptionText = document.createTextNode(displayText);  
  9.   newOption.appendChild(newOptionText);  
  10.   selectElement.appendChild(newOption);  
  11. }  
  12. </script>  
Ugyanakkor, ha intenzíven használsz javascriptet a tartalom manipulálására, akkor gondolkodj el az innerHtml használatán - ld. András tapasztalatait
2

a probléma

attila0001 · 2006. Júl. 25. (K), 12.32
igazából az a probléma hogy mikor meghivom a fugvényt

akarmilyenfugveny(infop[]);
sintax hibát ad ki a infop[]
3

terapia[]

attila0001 · 2006. Júl. 25. (K), 12.38
addNewOptionViaDom (terapia[], 'valueText', 'displayText')

hibát ad ki terapia[] nál
4

a name nem elegendo

zsepi · 2006. Júl. 25. (K), 13.06
nem a select nevét kell beletenned, hanem magát a node-ot.
  1. <script type="text/javascript">  
  2. var labelText = "valami, amit a user látni fog";  
  3. var optionValue = "valami, ami az érték";  
  4. var selectNode = null;  
  5. // node megkeresése, ha van id-je a selectnek  
  6. selectNode = document.getElementById('select-id');  
  7. // ha nincs id-je a selectnek  
  8. var selectName = "terapia[]";  
  9. var it = document.getElementsByTagName('SELECT');  
  10. for(var i = 0; i < it.length; i++) {  
  11.   if(it[i].name == selectName) {  
  12.     selectNode = it[i];  
  13.     i = it.length;  
  14.   }  
  15. }  
  16. // miután már minden megvan, meghívjuk a függvényt  
  17. addNewOptionViaDom (selectNode, optionValue , labelText );  
  18. </script>  
de a kérdéseidből úgy látom, hogy érdemes lenne keresned egy javascript alapjai tutorialt, hogy képbe kerülj a dolgokkal
5

igencsak elbonyolítod

Hodicska Gergely · 2006. Júl. 25. (K), 15.07
Ezt lényegesen egyszerűbben meg lehet csinálni. Legyen a két text mező, a select, meg egy gomb egy formon, ami végülis nem egy túl erős követelmény.
  1. <input type="button" onclick="addOption(this.form)">  
  2. <script>  
  3.     function addOption(form) {  
  4.         var select = form.elements['terapia[]'];  
  5.         select.options[ select.options.length ] = new Option( "text", "value", false, false );  
  6.     }  
  7. </script>  
Felhő