ingo: variable auf Seite ausgeben

Hi,

ich habe ne JavaScript Anfängerfrage.

Ich will über JavaScript die Anzahl der Ausgabe eines Formularfeldes regeln.

In diesem Falle wäre z.B. die Frage: Wieviel Bands wollen sie eintragen?
Nun würde ein Formularfeld folgen, in dem der User die Anzahl der Bands angibt. Es sollen nach dem Absenden dann entsprechend viele Input-Felder angezeigt werden.
Diese sollen unter dem "Anzahl der Bands-Feld" eingefügt werden.

Im HTML-Formlar Code würde ich schreiben:

<form name="Formular" action="">
<input type="text" name="Eingabe" size="3">
<input type="button" value="Anzahl der Bands" onclick="AnzahlBands()">
</form>

Dadrunter würde dann die Ausgabe stattfinden:
<script>
document.write (schreib);
</script>

Also Test habe ich nun mal die Funktion wie folgt geschrieben.

function AnzahlBands (Zahl) {
var zahl1 = document.Formular.Eingabe.value
var i,schreib;
schreib=zahl1 + " ist die der Wert";
}

Nach meinem Verständnis sollte sie jetzt einfach die abgesendete Zahl  in die Seite schreiben. Geht aber nicht. Wenn ich den Wert über alert aufrufe, wir die Zahl angezeigt. Also kommt sie an. Aber wie bekomme ich sie in die Seite eingebunden??

Stehe hier voll auf dem Schlauch und wäre für einen Denkanstoß dankbar!

  1. Hi,

    Nach meinem Verständnis sollte sie jetzt einfach die abgesendete Zahl  in die Seite schreiben.

    ja: Dort hin, wo das Rendering gerade angelangt ist. Also höchstwahrscheinlich hinter das Ende der Seite, wo keine Ausgabe mehr Sinn macht. Ergo wird, weil es die einzige logische Alternative ist, das aktuelle Dokument zerstört.

    Aber wie bekomme ich sie in die Seite eingebunden??

    Mittels dynamischen HTMLs. Betrachte dazu das betreffende Kapitel.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. vielen danks schon mal für die tipps und hinweise.
      bin leider bislang noch nicht dazu gekommen, sie durch zu arbeiten.

  2. Hi,

    Ich will über JavaScript die Anzahl der Ausgabe eines Formularfeldes regeln.

    In diesem Falle wäre z.B. die Frage: Wieviel Bands wollen sie eintragen?
    Nun würde ein Formularfeld folgen, in dem der User die Anzahl der Bands angibt. Es sollen nach dem Absenden dann entsprechend viele Input-Felder angezeigt werden.

    Warum läßt Du vom dann aufgerufenen Script nicht serverseitig die gewünschte Anzahl an Input-Feldern ausgeben?

    freundliche Grüße
    Ingo

  3. n'abend,

    <form name="Formular" action="">
    <input type="text" name="Eingabe" size="3">
    <input type="button" value="Anzahl der Bands" onclick="AnzahlBands()">
    </form>

    <form name="ermittleAnzahl" id="ermittleAnzahl" action="" onsubmit="schreibeBands(this.bandAnzahl.value); return false;">  
    <input type="text" name="bandAnzahl" size="3">  
    <input type="submit" value="Anzahl der Bands">  
    </form>
    

    finde ich persönlich eleganter.

    Dadrunter würde dann die Ausgabe stattfinden:
    <script>
    document.write (schreib);
    </script>

    document.write() überschreibt dein aktuelles Dokument, wenn dieses bereits fertig geladen ist. document.write() ist i.d.R. nur beim Laden der Seit brauchbar.

    function AnzahlBands (Zahl) {
    var zahl1 = document.Formular.Eingabe.value
    var i,schreib;
    schreib=zahl1 + " ist die der Wert";
    }

    Diese Funktion erwartet den Parameter Zahl, bekommt ihn aber in deinem HTML-Beispiel von oben nicht übermittelt. Zudem ignorierst du den nicht übermittelten Parameter Zahl und holst dir den Wert direkt vom Eingabefeld. Wozu deklarierst du die Variable i, wenn du sie doch gar nicht brauchst?

    function schreibeBands( anzahl )  
    {  
      alert( anzahl + ' Bands wollen eingetragen werden.' );  
    }
    

    Nach meinem Verständnis sollte sie jetzt einfach die abgesendete Zahl  in die Seite schreiben. Geht aber nicht. Wenn ich den Wert über alert aufrufe, wir die Zahl angezeigt. Also kommt sie an. Aber wie bekomme ich sie in die Seite eingebunden??

    Die Begründung für das von dir beobachtete Verhalten siehst du oben. Du könntest (per document.createElement()) ein Element erstellen und diesen die Anzahl der Bands zum Inhalt setzen. Das erstellte Element kannst du dann mittels Node.appendChild() in den DOM hängen. Sollte es bereits ein Element geben, welches die Anzahl beinhalten soll, kannst du den Inhalt dieses Elementes auch über .innerHTML oder .value (je nach Element) manipulieren.

    weiterhin schönen abend...

    --
    Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
    sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|