Установить атрибут действия формы при отправке? - PullRequest
31 голосов
/ 13 апреля 2011

Как изменить атрибут действия формы сразу после нажатия кнопки «Отправить»?

Ответы [ 6 ]

47 голосов
/ 13 апреля 2011
<input type='submit' value='Submit' onclick='this.form.action="somethingelse";' />

Или вы можете изменить его извне формы, используя javascript обычным способом:

 document.getElementById('form_id').action = 'somethingelse';
26 голосов
/ 25 ноября 2014

Существует простой способ сделать это, если вам нужна только поддержка современных браузеров: в вашей кнопке отправки добавьте атрибут 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, вероятно, будут работать лучше для вас. </p>

Дополнительная информация: http://www.wufoo.com/html5/attributes/13-formaction.html

15 голосов
/ 11 ноября 2011

Вы также можете установить значение атрибута 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, сначала выполняется эта операция, а затем форма переходит к действию.

15 голосов
/ 13 апреля 2011

Присоединить к событию кнопку отправки click и изменить атрибут action в обработчике события.

3 голосов
/ 13 апреля 2011

Вы можете сделать это на стороне 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;
}
1 голос
/ 28 ноября 2016

HTML5 formaction не работает в старых браузерах IE. Простое решение, основанное на некоторых из приведенных выше ответов:

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