Ich habe ein HTML-Formular, dessen Aktion durch JavaScript dynamisch festgelegt werden sollte. Wie mache ich es? Folgendes versuche ich zu erreichen:
<script type="text/javascript">
function get_action() { // inside script tags
return form_action;
}
</script>
<form action=get_action()>
...
</form>
Sie können JavaScript-Funktionen nur in onXXX
in Standard-HTML-Attributen aufrufen. Weisen Sie es einfach während des Fensterladens zu.
<script type="text/javascript">
window.onload = function() {
document.myform.action = get_action();
}
function get_action() {
return form_action;
}
</script>
<form name="myform">
...
</form>
Sie sehen, dass ich dem Formular eine name
gegeben habe, damit es in document
leicht zugänglich ist.
Alternativ können Sie es auch während eines submit
-Ereignisses tun:
<script type="text/javascript">
function get_action(form) {
form.action = form_action;
}
</script>
<form onsubmit="get_action(this);">
...
</form>
Einfaches JavaScript:
document.getElementById('form_id').action; //Will retrieve it
document.getElementById('form_id').action = "script.php"; //Will set it
JQuery verwenden ...
$("#form_id").attr("action"); //Will retrieve it
$("#form_id").attr("action", "/script.php"); //Will set it
Sehr einfache Lösung mit jQuery:
$('#myFormId').attr('action', 'myNewActionTarget.html');
Deine Form:
<form action=get_action() id="myFormId">
...
</form>
document.forms[0].action="http://..."
... vorausgesetzt, es ist das erste Formular auf der Seite.
Tun Sie, wie Rabbott sagt, oder wenn Sie jQuery ablehnen:
<script type="text/javascript">
function get_action() { // inside script tags
return form_action;
}
</script>
<form action="" onsubmit="this.action=get_action();">
...
</form>
Wenn wir das wollen, wollen wir die Aktion ändern, je nachdem, auf welche Schaltfläche wir drücken.
Hier müssen Sie nicht einmal name
oder id
dem Formular zuweisen. Verwenden Sie einfach die form
-Eigenschaft des angeklickten Elements:
<form action = "/default/page" >
<input type=submit onclick='this.form.action="/this/page";' value="Save">
<input type=submit onclick='this.form.action="/that/page";' value="Cancel">
</form>
<script>
function onSelectedOption(sel) {
if ((sel.selectedIndex) == 0) {
document.getElementById("edit").action =
"http://www.example.co.uk/index.php";
document.getElementById("edit").submit();
}
else
{
document.getElementById("edit").action =
"http://www.example.co.uk/different.php";
document.getElementById("edit").submit();
}
}
</script>
<form name="edit" id="edit" action="" method="GET">
<input type="hidden" name="id" value="{ID}" />
</form>
<select name="option" id="option" onchange="onSelectedOption(this);">
<option name="contactBuyer">Edit item</option>
<option name="relist">End listing</option>
</select>