提交时设置表单的操作属性?

时间:2011-04-12 20:01:40

标签: html forms submit action

如何在点击提交按钮后立即更改表单的操作属性?

7 个答案:

答案 0 :(得分:47)

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

或者您可以从表单外部修改它,使用javascript正常方式:

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

答案 1 :(得分:25)

如果您只需要支持现代浏览器,那么这是一种简单的方法:在提交按钮上添加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(&lt; 10)和Android浏览器(&lt; 4.0)不支持它。因此,如果您需要支持旧浏览器,那么现有的JS答案可能会更适合您。

更多信息:http://www.wufoo.com/html5/attributes/13-formaction.html

答案 2 :(得分:15)

附加到提交按钮click事件并更改事件处理程序中的action属性。

答案 3 :(得分:15)

您还可以在表单标记中设置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值时,将首先执行该操作,然后表单将移至操作。

答案 4 :(得分:3)

你可以在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;
}

答案 5 :(得分:1)

HTML5的格式在旧的IE浏览器上不起作用。基于上面的一些回应,一个简单的解决方法是:

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

答案 6 :(得分:1)

您可以尝试以下方法:

<form action="/home">
  
  <input type="submit" value="cancel">
  
  <input type="submit" value="login" formaction="/login">
  <input type="submit" value="signup" formaction="/signup">
  
</form>