How do I change a form's action attribute right after clicking the submit button?
Attach to the submit button click
event and change the action
attribute in the event handler.
action
attribute that needs to be changed will be for the <form>
, not for the <button
. –
Xiphoid <input type='submit' value='Submit' onclick='this.form.action="somethingelse";' />
Or you can modify it from outside the form, with javascript the normal way:
document.getElementById('form_id').action = 'somethingelse';
There's a simple way to do this if you only need to support modern browsers: on your submit button, add a formaction="/alternate/submit/url"
attribute like so:
<form>
[fields]
<input type="submit" value="Submit to a" formaction="/submit/a">
<input type="submit" value="submit to b" formaction="/submit/b">
</form>
It also works on <button>
tags.
The gotcha is that old versions of IE (<10) and the Android Browser (<4.0) do not support it. So, if you need to support older browsers, then the existing JS answers will probably work better for you.
More info: http://www.wufoo.com/html5/attributes/13-formaction.html
You can also set onSubmit
attribute's value in form tag. You can set its value using Javascript.
Something like this:
<form id="whatever" name="whatever" onSubmit="return xyz();">
Here is your entire form
<input type="submit">
</form>;
<script type=text/javascript>
function xyz() {
document.getElementById('whatever').action = 'whatever you want'
}
</script>
Remember that onSubmit
has higher priority than action attribute. So whenever you specify onSubmit
value, that operation will be performed first and then the form will move to action.
<enter>
not by clicking anywhere. –
Electrosurgery onSubmit="return xyz();"
like this. can't we just have onSubmit="xyz()"
? –
Goalie Attach to the submit button click
event and change the action
attribute in the event handler.
action
attribute to the required value before the submit? –
Jaquelynjaquenetta action
attribute that needs to be changed will be for the <form>
, not for the <button
. –
Xiphoid You can do that on javascript side .
<input type="submit" value="Send It!" onClick="return ActionDeterminator();">
When clicked, the JavaScript function ActionDeterminator() determines the alternate action URL. Example code.
function ActionDeterminator() {
if(document.myform.reason[0].checked == true) {
document.myform.action = 'http://google.com';
}
if(document.myform.reason[1].checked == true) {
document.myform.action = 'http://microsoft.com';
document.myform.method = 'get';
}
if(document.myform.reason[2].checked == true) {
document.myform.action = 'http://yahoo.com';
}
return true;
}
HTML5's formaction does not work on old IE browsers. An easy fix, based on some of the responses above, is:
<button onclick="this.form.action='/PropertiesList';"
Account Details </button>
You can try this:
<form action="/home">
<input type="submit" value="cancel">
<input type="submit" value="login" formaction="/login">
<input type="submit" value="signup" formaction="/signup">
</form>
© 2022 - 2024 — McMap. All rights reserved.
action
attribute to the required value before the submit? – Jaquelynjaquenetta