Form in Form submitten per JS

7bkahnt

Mitglied
Hallo Leute,
ich komm gerade nicht weiter.
Ist es möglich eine Form in einer Form zu submitten?

Ich dachte eigentlich, dass es wie folgt funktionieren müsste:

HTML:
<script type="text/javascript">
function submitter(){
     document.forms["testform2"].submit();
} 	
</script>

<body>
<s:form name="testform1" action="Funktion1">
...
<s:form name="testform2" action="Funktion2">
...
</s:form>
...
</s:form>
</body>

Aber es funktioniert leider nicht. Wenn ich auf einen Button klicke, wird mit onclick dann der submitter() aufgerufen.
Trenne ich die beiden forms, dann klappt es. Aber das Problem ist, dass wenn ich dann etwas in testform1 mache, die Werte, die in testform2 standen nicht mit übernommen werden, da er ja dann nicht mehr in die setter reingeht.
Sicherlich könnt ich einfach in testform1 hiddenfelder mit den Werten einbauen. Aber ist das die Lösung?
Habt ihr da vielleicht einen Rat?

grüsse
 
Gegenfrage: wo ist der Sinn die Formularfelder auf der gleichen Seite aber in verschiedenen Formularen zu platzieren

Aber ganz abgesehen davon es ist nicht HTML-Konform.
 
Hi,

die Verschachtelung zweier (mehrerer) <form>-Tags ist gemäß der HTML-Elementreferenz für form und seine möglichen Kindelemente nicht zulässig.

mfg Maik
 
@tombe:
Ich hab zwei Bereiche.
testform1 und testform2. Beide rufen beim submit unterschiedliche Funktionen auf.
testform1 benötigt für den Aufruf seiner Funktion allerdings Werte von testform2 und genau die werden eben beim submit nicht gesettet, wenn ich die beiden forms trenne. Daher dachte ich mir kann man die verschachteln. Aber wenn es nicht html-konform ist macht das wohl keinen Sinn.
Gibt es denn eine andere Möglichkeit wie ich durch Eingaben in ein Textfeld eine action auslösen kann?
Bei einem submit-button wär das ja kein Problem, weil der hat ja das Attribut action. Aber beim Textfeld hatte ich das dann eben durch JS gelöst.
Ich hatte glaub ich es schoneinmal hinbekommen mittels JS mit window.location eine action aufzurufen.
Nur da war das Problem, dass er wirklich nur die Funktion aufgerufen hat und nicht in die setter reingegangen ist.
Deswegen dacht ich mir muss ich die form submitten, da es so funktioniert hatte, wenn ich die forms trenne.

grüsse
 
Zuletzt bearbeitet:
Dann mach doch eine Form aber zwei Submit Buttons. In diesem Fall werden die Angaben aller Felder übergeben und du kannst trotzdem unterschiedliche Funktionen ausführen.
 
Das Problem ist, dass meine Kunden aber ein Textfeld haben möchten, in diesem etwas eingeben, dann poppt eine Liste auf, indem Sie Ihre Auswahl treffen und beim klicken wird eben die JS-Methode aufgerufen.
Die wollen kein Extra-Button, da sie so wenig klicks wie möglich machen wollen.
Kunden eben ;-)

grüsse
 
Gut dann wird anhand der Eingabe in das Textfeld bzw. anhand der Auswahl in der Liste unterschieden welche Funktion ausgeführt werden soll!
 
Wie kann ich dann die action aufrufen ohne form?
Weil ein Textfeld hat ja kein action-Attribut.
Und wenn ich in dem textfeld nur onclick="funktion1();"; sage und in der funktion1() dann window.location.... mit der gewünschten Funktion steht, dann geht er ja nicht in die setter und getter Methoden rein sondern ruft nur die gewünschte Funktion auf.
Deswegen bin ich ja darauf gekommen forms zu submitten. Da er da dann in die setter und getter reingeht.
 
Zuletzt bearbeitet:
Zitat aus SelfHTML:

Code:
<script type="text/javascript">
function AbGehts () {
  document.Testform.submit();
}

Eine Form brauchst du schon, nur keinen Button. Die Submit Anweisung kannst du doch in die Funktion so mit einbauen.
 
Das ist doch exakt das gleiche Beispiel, wie ich oben schon angegeben hatte bzw. kommt auf das Gleiche heraus, indem eine form submittet wird.
Wenn ich aber nur eine form verwende, kann ich doch auch nur eine action verwenden. Da ich ja keine Buttons verwende, muss ich die action ja in die form packen.
Ich brauche aber zwei unterschiedliche actions! Da liegt doch das Problem.;-)

grüsse
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück