Form in Form submitten per JS

Mach zwei Formen (nicht verschachtelt) und übergebe die Daten von Form2 zu Form1 bzw. umgekehrt, wenn nötig. Und dann Form.submit();

(Du müsstest dann zusätzliche Felder (evtl. type="hidden") bei Form1 bzw. Form2 machen)
 
Du nimmst eine Form, eine Action und eine Funktion.

In dieser Funktion prüfst du jetzt den Inhalt des Textfeldes oder eben der Listbox. Je nachdem was da angegeben ist führst du entweder die eine oder die andere Aktion aus.
 
@ComFreek: Joa danke. Sowas ähnliches hatte ich mir auch schon gedacht. Nur ich dachte es geht auch etwas unaufwendiger^^.
Wie übergebe ich Werte von form1 zu form2? Ich denke mal du meintest das so, dass ich per js mit document.getElementById dann den einen Wert von form1 auf ein hiddenfeld in form2 schreibe oder?
@tombe: Es geht ja nicht um den Inhalt der Textfelder. Sondern darum dass einfach zwei vollkommen unterschiedliche Funktionen aufgerufen werden, völlig unabhängig von dem was in den Textfeldern steht.
Stell dir zwei Textfelder nebeneinander vor. Die in eine Form gepackt. So und nun will ich bei Eingabe in das linke Feld eine action ausführen und bei Eingabe in das rechteTextfeld, eine andere action.
Was da eingegeben wird, kann man ja vorher nicht wissen. Aber es sollen eben zwei unterschiedliche Funktionen angewandt werden, welche in der Action steht.
Aber wie´s scheint muss ich da mit hidden-Feldern arbeiten. :-(







.
 
Zuletzt bearbeitet:
Und wie ist das:

HTML:
<html>
<head>
<title>Test</title>

<script type="text/javascript">
function test (element) {
var wert = element;

if (wert == "1") {
	document.form.action = "action1";
} else {
	document.form.action = "action2";
}
	document.form.submit();

}
</script>

</head>
<body>
<form name="form" method="post" action="">
Feld 1 <input type="text" name="wert1" value="" size="20" maxlength="50" onchange="test(1)"/>
<br />
Feld 2 <input type="text" name="wert2" value="" size="20" maxlength="50" onchange="test(2)"/>
</form>
</body>
</html>

Es gibt ein Formular und 2 Textfelder. So bald sich im "Feld 1" oder im "Feld 2" etwas ändert, wird die Prozedur "test" aufgerufen und hierbei übergeben welches Feld sich verändert hat.
War es das "Feld 1" wird das Formular mit "action1" abgeschickt, war es das "Feld 2" ist es "action2".

Wenn ich nicht alles falsch verstanden habe, ist es doch das was du haben willst.

Gruß Thomas
 
@Deluxe: Ja genau, ich arbeite mit autocomplete. Das sind gefühlte 1000 zeilen JS-Code^^. Hatte schon viel von JQuery gehört, aber dann doch mit JS gelöst.
@tombe: Eigentlich ist die Idee genial. Nur ich hab es gerade mal ausprobiert. Es kommt auf dasselbe raus wie mit window.location und dann die Funktion.
Er ruft dann also direkt die Funktion auf, ohne vorher alle Werte in der Action-Klasse zu setten. Wahrscheinlich muss man dafür echt immer die form submitten.
So nen Misst.

Meine struts.xml sieht wie folgt aus:
HTML:
 <action name="getAdr" method="getAdrds" class="actions.NeueAdresseAction">
                    <result name="success">/neueadressen/neuadralles.jsp</result>
         </action>

Normalerweise dachte ich schreib ich dann, um mich auf deine test-Funktion zu beziehen, document.irgendeineform.action="getAdr";
Da er aber die form nicht submittet und es so scheint, als wenn er dadurch auch nicht die struts.xml schaut, muss ich die Funktion direkt angeben mittels
document.irgendeineform.action="getAdrds". Dann funktioniert es, nur nützt es mir nichts, weil die Funktion natürlich die Werte braucht, die eigentlich gesettet werden sollen.

Edit: An sich müsste es doch möglich sein,anhand deiner Idee, die action für die form dann in der test-Funktion festzulegenund danach die form zu submitten.
Dann wird die form immer mit der gewünschten action submittet.
Ich weiß nur nicht ob er dann anhand von document.form.submit() nur in die form-Tags schaut wo ja action="" steht, oder ob er vorher dann die action setzt.
Ist das irgendwie realisierbar?
 
Zuletzt bearbeitet:
An sich müsste es doch möglich sein,anhand deiner Idee, die action für die form dann in der test-Funktion festzulegenund danach die form zu submitten.
Dann wird die form immer mit der gewünschten action submittet.

Genau das passiert bei meinem Beispiel doch auch !

Also ich habe hier gerade mein Beispiel genommen und dann noch zusätzlich eine Datei "action1.php und eine Datei "action2.php" erstellt.

Wenn ich nun in einem der Textfelder etwas ändere, wird die Funktion "test" aufgerufen und geprüft welches Feld sich geändert hat. Ändere ich im "Feld 1" etwas, wird die Datei "action1.php" aufgerufen und die Werte der Textfelder angezeigt. Gleiches gilt wenn ich im anderen Feld etwas ändere.

Ich verstehe jetzt nicht so wirklich was bei dir nicht klappt. Ist zwar blöd aber fangen wir doch nochmal ganz am Anfang an und du erklärst was genau wann passieren soll.

Gruß Thomas
 
Oh man. Es ist echt zu früh am morgen!
Jetzt seh ichs auch gerade, dass es bei dir schon steht :-) .
Danke euch für die Hilfe!^^
Es funktioniert jetzt wunderbar.
Super Forum! Weiter so..
 
Zurück