Zum Inhalt springen

JavaScript: Formularfelder in einem bereits existieren Formular generieren


hawkeye78

Empfohlene Beiträge

Hallo,

ich würde gerne ein CD-Datenbank schreiben, aus diesem Grund versuhe ich nun ein Formular zu erstellen bei welchem ich in einen der ersten Felder die anzahl der Lieder von der CD eingeben kann und aus diesen Daten dann die entsprechende Anzahl an Felder generiert wird.

Ich habe bis jetzt folgenden Code produziere:


<html>

<head>

<script language="javascript">

<!--

function ausgabe()

{

var wert=0;

wert=document.auswahl.Anzahl.value;

alert(wert);

}

//-->

</script>

</head>

<body>

<form name="auswahl" onSubmit="return ausgabe(); return true">

<br>

Anzahl: <input name="Anzahl" type="text" size="2" maxlength="5">

<input type="submit" value="Absenden">

</form>

</body>

</html>

Wenn ich nun allerdings in der Funktion ausgabe() mit document.write probiere weitere Daten auf diese Seite zu schreiben wird eine neue Seite erstellt. Meine Frage ist nun besteht die Möglichkeit, auf dieser Seite ein weiteres Formular zu erstellen ohne das das erste Feld für die Anzahl der Felder gelöscht wird bzw. ohne das die Seite vorher gewechselt wird.

Ich wäre über einen entsprechenden Hinweis sehr dankbar, da ich in JavaScript alles andere als Fit bin.

Viele Grüsse

Dan

Link zu diesem Kommentar
Auf anderen Seiten teilen

hab jetzt gerade nicht viel zeit, evtl. kann ich dir nachher mehr zu tippen.

im prinzip machst du ein <input type="button" onclick="generate_form()">

im JS:

function generate_form()

{

anzahl = document.getElementById('input_anzahl');

frmparent = document.getElementById('parent_element');

for(i = 0; i< parseInt(anzahl); i++)

{

elem = document.CreateElement('input');

elem.Name = "input_"+i;

elem.type = "text";

frmparent.appendChild(elem);

}

ungetestet und nur ein grober rohling. Aber ganz ähnlich funktioniert ein Script das ich selbst benutze.

von Document Write und anderen versuchen rate ich absolut ab. ^^

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

erst einmal möchte ich mich für dein Posting bedanken, ich denke das hilft mir echt weiter, aber ich hätte noch ein paar Fragen. Zum einen worauf bezieht sich:

anzahl = document.getElementById('input_anzahl');

Ich denke das ist das Textfeld wo ich die eigentlich Anzahl der zu generierenden Felder eingebe, aber wenn ich auf diese Daten dann ein parseInt mache bekomme ich in der Alertbox die Fehlermeldung "NaN".

Zum anderen hätte ich noch die Fragen worauf bezieht sich

frmparent = document.getElementById('parent_element');

Ansonsten denke ich verstehe ich was für ein Prinzip dahinter steht allerdings habe ich ein paar Probleme daraus lauffähigen Code zu machen. Noch einmal vielen Dank für dein Posting.

Viele Grüsse

Dan

Link zu diesem Kommentar
Auf anderen Seiten teilen

in JS mit Feld "namen" zu arbeiten ist fies, da es zu Namenskollisionen mit Reservierten Wörtern kommen kann.

du musst

<input name="Anzahl" id="input_anzahl" type="text" size="2" maxlength="5">

machen

und irgendwo

<div id="parent_element"></div>

(nicht zwangsweise div, kann auch td oder sonstwas sein)

dann kommt letztlich sowas raus

<div id="parent_element">

<input type="text" name="input_1">

<input type="text" name="input_2">

</div>

BEACHTE:

anders als bei alten Document.Write oder .innerHTML befehlen, sind die Input-Felder dann nicht im Quelltext einsehbar. Es sind reine JS-DOM Objekte.

Also nicht wundern wenn du dann input-Felder siehst, die gar nicht im Code stehen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Aiun,

entschuldige bitte das ich auf deinen letzten Beitrag jetzt erst reagiere, aber ich bin in den letzten Tagen nicht dazu gekommen an dem Script weiter zu arbeiten.

Ich habe durch einen glücklichen Zufall jemanden im Hörsaal gefunden der mir ein lauffähiges Beispiel zur Verfügung stellen konnte, ich habe nun allerdings das Problem das ich dieses Script nur so umstrukturieren muß das es wirklich die Daten an ein zweites Script übergibt um dort die Daten auszuwerten.

Mein Beispiel schaut so aus:


<html>

<head>

<script language="JavaScript">

function change()

{

  a.innerHTML+="<form action=\"uebergabe.php\" method="put">";

 for (i=0; i<b.value; i++)

 {

  a.innerHTML+="<input type=text><br>";

 }

  a.innerHTML+="<input type=\"submit\" value=\"hinzufügen\">";

  a.innerHTML+="</form>";

}


</script>

</head>

<body>

<input id="b"  type="text" onChange="change()">


<div id="a">

</div>

</body>

</html>


Das Programm stellt zwar das Formular richtig da aber es ist nicht möglich das Formular abzusenden. Ich wäre daher sehr dankbar wenn Du oder jemand anders mir einen kleinen Tipp geben könntet wo der Fehler steckt.

Viele Grüsse

Dan

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

^^,... mal noch ne frage zum thema parseint, ist es wirklich nötig das im javascript zu machen, oder wird der datentyp der variablen automatisch richtig umgewandelt und so?

(hab mich zwar schon betrieblich in letzter zeit n bissl damit beschäftigt, aber teilweise haperts da noch n bissl :D )

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...