pi: eval-anweisung geht nur zusammen mit alert-meldung

Beitrag lesen

Hallo tina,

ich habe dir mal einen Vorschlag kommentiert, und hoffe, du kommst mit den spärlichen Kommentaren klar:

<script type="text/javascript">

var neu, testarray;

function init() {

neu = document.form1.auswahl;
 testarray = new Array(5); // Array definieren

for (var i = 0; i < 5; i++) {
  testarray[i] = new Array(); // mehrdimensionales Array definieren
 }

testarray[0][0] = ["1", "eins"]; // so hast die Möglichkeit, value und text zu ändern
  testarray[0][1] = ["grasgrün", "text"];
  testarray[0][2] = ["1", "eins"];

testarray[1][0] = ["4", "vier"];
  testarray[1][1] = ["Silber", "text"];
  testarray[1][2] = ["1", "eins"];

testarray[2][0] = ["2", "zwei"];
  testarray[2][1] = ["rot", "text"];
  testarray[2][2] = ["2", "zwei"];

testarray[3][0] = ["5", "fünf"];
  testarray[3][1] = ["blau", "text"];
  testarray[3][2] = ["2", "zwei"];

testarray[4][0] = ["7", "sieben"];
  testarray[4][1] = ["grasgrün", "text"];
  testarray[4][2] = ["2", "zwei"];
}

function testEval(sel) {

neu.length = 0; // Aktuelle options loeschen

for(var i = 0; i < testarray[sel].length; i++) { // Liste neu aufbauen
  neu[i] = new Option(testarray[sel][i][1], testarray[sel][i][0]);
  neu[i].selected = true; //  Eintrag selektieren
 }
}
/* Hier weiss ich nicht, was du vorhast: Sollen die vorhandenen options gelöscht und durch neue ersetzt werden, oder sollen die neuen unten drangehängt werden?  Welcher Eintrag soll selektiert werden? Auf jeden Fall siehst du, wie man das Ganze um ein paar unnötige Funktionen kürzen kann und wie man ohne eval auskommt.*/

</script>
</head>

<body onload="init()">

<form name="form1" action="">
  <select name="auswahl" size="1" onchange="testEval(this.options.selectedIndex)">
    <option value="1">hallo</option>
    <option value="2">du</option>
    <option value="3">da</option>
  </select>
</form>

</body>
</html>

Grüße

pi