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

<select multiple name="infop[]">
<option value="2">2
<option value="5">5
<option value="4">4
</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
<script type="text/javascript">
// selectElement - a select dom node
// valueText - az option uj erteke
// displayText - az option felhasznalo altal latott erteke
function addNewOptionViaDom (selectElement, valueText, displayText) {
  var newOption = document.createElement('OPTION');
  newOption.value = valueText;
  var newOptionText = document.createTextNode(displayText);
  newOption.appendChild(newOptionText);
  selectElement.appendChild(newOption);
}
</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.
<script type="text/javascript">
var labelText = "valami, amit a user látni fog";
var optionValue = "valami, ami az érték";
var selectNode = null;
// node megkeresése, ha van id-je a selectnek
selectNode = document.getElementById('select-id');
// ha nincs id-je a selectnek
var selectName = "terapia[]";
var it = document.getElementsByTagName('SELECT');
for(var i = 0; i < it.length; i++) {
  if(it[i].name == selectName) {
    selectNode = it[i];
    i = it.length;
  }
}
// miután már minden megvan, meghívjuk a függvényt
addNewOptionViaDom (selectNode, optionValue , labelText );
</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.
<input type="button" onclick="addOption(this.form)">
<script>
	function addOption(form) {
		var select = form.elements['terapia[]'];
		select.options[ select.options.length ] = new Option( "text", "value", false, false );
	}
</script>
Felhő