送信ボタンをクリックした直後にフォームのアクション属性を変更するにはどうすればよいですか?
送信ボタンclick
イベントに接続し、イベントハンドラーのaction
属性を変更します。
<input type='submit' value='Submit' onclick='this.form.action="somethingelse";' />
または、javascriptを通常の方法で使用して、フォームの外部から変更できます。
document.getElementById('form_id').action = 'somethingelse';
最新のブラウザのみをサポートする必要がある場合は、これを行う簡単な方法があります。送信ボタンにformaction="/alternate/submit/url"
属性は次のようになります。
<form>
[fields]
<input type="submit" value="Submit to a" formaction="/submit/a">
<input type="submit" value="submit to b" formaction="/submit/b">
</form>
また、<button>
タグ。
古いバージョンのIE(<10)およびAndroid Browser(<4.0)はサポートしていません。したがって、サポートする必要がある場合古いブラウザの場合、既存のJS回答はおそらくより適切に機能します。
詳細: http://www.wufoo.com/html5/attributes/13-formaction.html
FormタグでonSubmit
属性の値を設定することもできます。 Javascriptを使用して値を設定できます。
このようなもの:
<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>
onSubmit
はアクション属性よりも優先度が高いことに注意してください。したがって、onSubmit
値を指定すると、その操作が最初に実行され、フォームがアクションに移行します。
あなたはJavaScript側でそれを行うことができます。
<input type="submit" value="Send It!" onClick="return ActionDeterminator();">
クリックすると、JavaScript関数ActionDeterminator()が代替アクションURLを決定します。サンプルコード。
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のformactionは古いIEブラウザーでは動作しません。上記の応答のいくつかに基づく簡単な修正は次のとおりです。
<button onclick="this.form.action='/PropertiesList';"
Account Details </button>