Form action dynamische url aus Textfeld
MrLumia
- formulare
- html
Hallo Zusammen, ich benötige für ein Formular folgende Hilfe. Der Wert für "Action" soll aus dem "hidden" Textfeld mit der Bezeichnung "actionlink" gelesen/verwendet werden. Wie kann ich so etwas hinbekommen.
<body>
<form action="(Wert aus Testfeld mit der Bezeichnung = link)" method="post">
<input type="hidden" name="actionlink" value="http://www.musterlink.de" />
<input id="Submit1" runat="server" type="submit" value="submit" />
</form>
</body>
@@MrLumia
Hallo Zusammen, ich benötige für ein Formular folgende Hilfe. Der Wert für "Action" soll aus dem "hidden" Textfeld mit der Bezeichnung "actionlink" gelesen/verwendet werden. Wie kann ich so etwas hinbekommen.
<body> <form action="(Wert aus Testfeld mit der Bezeichnung = link)" method="post"> <input type="hidden" name="actionlink" value="http://www.musterlink.de" /> <input id="Submit1" runat="server" type="submit" value="submit" /> </form> </body>
Du schickst das Formular zu deinem Server, der den Wert des Feldes actionlink
auswertet und entsprechend weiterleitet.
oder
Mit JavaScript. Mit allen Nachteilen, die das mit sich bringt.
Aber warum das Ganze?
Warum schreibst du den URI nicht direkt ins action
-Attribut?
Für Buttons gibt es in HTML seit langem das button
-Element: <button id="Submit1" type="submit">submit</button>
runat="server"
? Wozu soll das gut sein? Ich konnte solch ein Attribut in keiner Spec finden.
LLAP 🖖
sh:) fo:} ch:? rl:) br:> n4:& va:| de:> zu:} fl:{ ss:| ls:# js:|
[Vollzitat entfernt]
Danke für deine Antwort. Das runat="Server" ist versehentlich in den Code gelangt. Dies stammt von der ASP.net Seite.
Das Formular wird von einer Fremdsoftware gefüllt. Diese Software übermittelt den Actionlink in das Textfeld. Ich muss mein Formular an diesen Link weitersenden. Und da ich so etwas noch nie gemacht habe, fehlt mir hier noch eine Lösung.
Wenn es asp.net ist, dann guck Dir gut an was da noch drumherum an HTML und Script generiert wird. Mit Webforms muss man kooperieren, sonst geht nix.
Du kannst aber auch serverseitig im Load-Event des Webform auf den Postback reagieren und einen Response.Redirect machen.
Rolf
Wenn es asp.net ist, dann guck Dir gut an was da noch drumherum an HTML und Script generiert wird. Mit Webforms muss man kooperieren, sonst geht nix.
Du kannst aber auch serverseitig im Load-Event des Webform auf den Postback reagieren und einen Response.Redirect machen.
Rolf
Hallo Rolf,
vielen Dank. Ja das stimmt bei ASP.net wird noch viel Drumherum generiert. Das bei dem Submit noch "runat=Server" drin stand, war ein versehen. Die Seite, das Formular läuft rein auf HTML. Daher brauche ich hier eine Lösung für HTML.
@@MrLumia
Das Formular wird von einer Fremdsoftware gefüllt. Diese Software übermittelt den Actionlink in das Textfeld.
Das geschieht wann und wie? (*)
Ich muss mein Formular an diesen Link weitersenden. Und da ich so etwas noch nie gemacht habe, fehlt mir hier noch eine Lösung.
Ich hatte dir zwei genannt.
Die zweite könnte sein, auf das submit
-Event des Formulars zu lauschen, die Standardaktion mit preventDefault()
zu vehindern, das action
-Attribut mit dem Wert aus dem hidden field zu füllen und das Formular per JavaScript abzuschicken.
Je nach Antwort auf obige Frage (*) könnte es sich aber auch darauf beschränken, das action
-Attribut mit dem Wert aus dem hidden field zu füllen.
Wenn aus irgendeinem Grund kein JavaScript geladen/ausgeführt wird, wäre das Formular dann nicht bedienbar. Deshalb solltest du zumindest als Fallback auch die erste genannte Lösung in Erwägung ziehen:
Du schickst das Formular an deinen Server; das verarbeitende Script wertet den Wert aus dem hidden field aus und leitet die Nutzereingaben zu dem entsprechenden Server weiter.
LLAP 🖖
sh:) fo:} ch:? rl:) br:> n4:& va:| de:> zu:} fl:{ ss:| ls:# js:|
Hallo Gunnar Bittersmann,
Für Buttons gibt es in HTML seit langem das
button
-Element:<button id="Submit1" type="submit">submit</button>
und ‚submit‘ ist auch noch der Default-Type.
Bis demnächst
Matthias
@@MrLumia
Noch was:
<input type="hidden" name="actionlink" value="http://www.musterlink.de" />
Für Beispieldomains verwende bitte eine der nach BCP 32 dafür vorgesehenen (wie bspw. example.net).
LLAP 🖖
sh:) fo:} ch:? rl:) br:> n4:& va:| de:> zu:} fl:{ ss:| ls:# js:|