3 Listboxen, 2 normal, 1 dynamisch -> selectierten wert hinzufügen

Hallo zusammen,
Ich habe 3 Listboxen.
Listbox 1( name: level1): Wert anklicken
Listbox 2( name: level2): Zeigt weitere Auswahlmöglichkeiten für Werte aus
Listbox 1 an.
Listbox 3(name: Liste) : Hier soll, wenn man den hinzufügen-Button drückt, der ausgewählte Wert aus Listbox 2 eingefügt werden.

Es gibt 2 Formulare:
a1 und TestForm.
Listbox 1 und 2 sind im Formular a1 .
Listbox 3 in Testform.

Mein Problem ist letzteres, dass ich es irgendwie nicht schaffe, den Hinzufügen Button zum laufen zu bringen.

Ich hoffe, ihr könnt mir helfen.

Hier der Code:

Die Funktionen:
Code:
<script type="text/javascript">
	var intr = new Array();
	intr[0] = new Array('Allgemein','Chat & Diskussion','LAN-Partys','Programmierung','Computerspiele','Hardware','Software','Webdesign','Netzwerk','Modding');//computer
	intr[1] = new Array('Auto & Motorrad','Handy','Kochen','Lesen','Spiele','Wellness','Haus & Garten','Kunst','Medien','Sammeln','Sprachen','Haustier','Mode','Technik & Wissenschaft','Sonstige Hobbys');//hobbys
	intr[2] = new Array('Bars','Clubs','Kneipen','Partys');//nachtleben
	intr[3] = new Array('Ausdauer & Fitness','Kampfsport','Tanzen','Radsport','Fußball','Basketball','Volleyball','Motorsport','Wassersport','Outdoor','Wintersport','Sonstige Sportarten');//sport
	intr[4] = new Array('Dokumentation','Sportsendungen','Allg. TV','Gericht-Shows','Talkshows','Comedy','Musiksender','TV-Serien');//tv
	intr[5] = new Array('Alternative','Blues','Country','Dancehall','Freestyle','Grunge','House','Opern','Punk','Rock','Techno','Volkstümliche','Black & RnB','Chillout-Musik','Crossover','Death Metal','Funk','Heavy Metal','Jazz','Moods','Pop','Rap','Schlager','Soul','Trance','Black Metal','Country','Dance & Electronic','Drum & Bass','Gothic','Hip-Hop','Klassische Musik','Oldies','Power Metal','Reggae','Ska','Soundtracks','Volksmusik','Sonstige Musikrichtung');//musik
	
	function setLevel2(id){
	  deleteOptions('level2');
	  addOptions('level2',id);
	}
	
	
	
    function deleteOptions(o){
      var y = document.getElementById(o).length;
      for(var x=0; x<y; x++){
        document.getElementById(o).options[0] = null;
      }
    }

	
    function addOptions(o,id){
      for(var x=0; x<intr[id].length; x++){
        opt = new Option(intr[id][x],intr[id][x],false,false);
        document.getElementById(o).options[document.getElementById(o).options.length] = opt;
      }
    }
	
	
function Hinzufuegen () {
  NeuerEintrag = new Option(document.Testform.neu.value, document.Testform.neu.value, false, true);
  document.Testform.liste.options[document.Testform.liste.length] = NeuerEintrag;
  document.Testform.neu.value = "";
}

          


function testDelete() {
    var formObject = document.Testform
    if (formObject.liste.selectedIndex!=-1) {
        deleteOption(formObject.liste,formObject.liste.selectedIndex)
    } else {
        alert("Bitte zu löschenden Eintrag wählen!")
    }
}
	
function deleteOption(selectObject,optionRank) {
    if (selectObject.options.length!=0) { selectObject.options[optionRank]=null }
}


	
	  </script>


level1:
Code:
onchange="setLevel2(this[this.selectedIndex].id)"

hinzufügen button:
Code:
<input class="input2"  style="width=100px;" type="button" value="Hinzufügen" onClick="Hinzufuegen()">

Die Funktion Hinzufuegen() verweist auf neu. Neu ist eine Textbox, weil ich nicht weiß, wie ich den markierten Wert aus Listbox 2 nehmen soll...

Ich danke euch im vorraus!
Mit freundlichen Grüßen,
Georg
:)
 
Hi,

wenn du den aktuell ausgewählten Eintrag aus level2 übernehmen willst, musst du den Wert auch von dort auslesen.
Code:
function Hinzufuegen () {
  var strNeu = document.getElementById("level2").options[document.getElementById("level2").selectedIndex].value;
  NeuerEintrag = new Option(strNeu, strNeu, false, true);
  document.Testform.liste.options[document.Testform.liste.length] = NeuerEintrag;
}
Weiterhin solltest du beachten, dass JS zwischen Gross- und Kleinschreibung unterscheidet - d.h. TestForm ist ungleich Testform und Liste ist nicht gleich liste.

Ciao
Quaese
 
Zurück