web-dev-qa-db-ja.com

送信時にフォームのアクション属性を設定しますか?

送信ボタンをクリックした直後にフォームのアクション属性を変更するにはどうすればよいですか?

31
dave

送信ボタンclickイベントに接続し、イベントハンドラーのaction属性を変更します。

15
Oded
<input type='submit' value='Submit' onclick='this.form.action="somethingelse";' />

または、javascriptを通常の方法で使用して、フォームの外部から変更できます。

 document.getElementById('form_id').action = 'somethingelse';
47
James

最新のブラウザのみをサポートする必要がある場合は、これを行う簡単な方法があります。送信ボタンに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

26
Nathan Friedly

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値を指定すると、その操作が最初に実行され、フォームがアクションに移行します。

17
Bhavik Shah

あなたは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;
}
3
Priyank

HTML5のformactionは古いIEブラウザーでは動作しません。上記の応答のいくつかに基づく簡単な修正は次のとおりです。

<button onclick="this.form.action='/PropertiesList';" 
    Account Details </button>
1
user2099484