Calocybe: Variablenübergabe bei Auswahlbox

Beitrag lesen

Hallo Matti!

In JavaScript wird der Wert der ausgewaehlten Option mit
document.auswahl.selectbox.options[document.auswahl.selectbox.selectedIndex].value
abgefragt. Am besten uebergibst Du Deiner Funktion die Selectbox als Objekt
    testfelder(document.auswahl.selectbox);
und beginnst die Funktion ungefaehr so:
    function testfelder(sel) {
        var x;
        x = sel.options[sel.selectedIndex].value
        ...

Bei dem unten aufgeführten Code geht es darum, in einer Selectbox einen Wert einzustellen. Daraufhin soll eine Tabelle mit genau der Anzahl an Input-Feldern erscheinen.

  1. Ich hab hier ein kleines Problem mit einem selbstgemachten JavaScript. Und zwar führen es weder der Opera noch Netscape richtig aus. Netscape zeigt nichts an. Ich denke, daß das Problem hier bei der Variablenübergabe liegt. Oben im Titel zeigt Netscape nämlich 'Ihr Test mit null Testfeldern' an, ein Anzeichen dafür, daß Netscape die Variable 'x' oder vielleicht auch 'i' nicht richtig bekommt. Opera zeig die Variabel x mit dem Wert 1 an, und zeigt auch ein Eingabefeld an, aber oben im Titel der Seite steht auch 'null'...   Es gibt dabei keine Fehlermeldung. Der IE5 dagegen macht es und zeigt auch das Ergebnis, daß ich haben will.

  2. Das ganze wollt ich mir eigentlich in einem Div (bzw. Layer) unterhalb des Auswahlfeldes anzeigen lassen. Ich glaube, daß dies mit ungefähr mit document.all.meindiv.innerHTML und ähnlichem funktioniert. Ich habe eine do-while Schleife da drinnen. Und ich hatte eigentlich gedacht, den ganzen Text, der momentan geschrieben wird, in eine Variable zu packen. Wie schaffe ich es, den ganzen Text aus der Schleife z.B. fünfmal in die Variable zu schreiben.

<script language="JavaScript">
<!--
function testfelder(x)
{
document.writeln("<html><head><title>Ihr Test, mit " + x + " Testfeldern</title></head><body bgcolor=#FFFFFF>");

Bevor man ein (bereits geladenes) Dokument beschreibt, oeffnet man es normalerweise mit document.open(). Da kenn ich mich aber nicht so aus, ich benutze das selten. Vor allem halte ich es fuer kritisch, in dasselbe Dokument zu schreiben, in dem der JS-Code liegt.

»»  document.writeln("<tr><th>" + i + ". </th><td><input width="50" name="Testfeld Nr. " + i + ""></td></tr>");

Kein guter Name fuer ein Element. Leerzeichen und Punkt besser weglassen.

<option value="100"> 100
<option value="150"> 150
<option value="200"> 200

Ein wegelassenes </option> Tag kann auch zu Problemen fuehren.

So long