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

dav*_*ave 33 html forms action submit

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

Jam*_*mes 48

<input type='submit' value='Submit' onclick='this.form.action="somethingelse";' />
Run Code Online (Sandbox Code Playgroud)

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

 document.getElementById('form_id').action = 'somethingelse';
Run Code Online (Sandbox Code Playgroud)

  • 这是一个很简洁的例子.请注意,如果您在表单提交时进行了验证,并且单击此按钮后验证失败,则单击其他提交按钮仍可能会调用新设置的操作. (6认同)

Nat*_*dly 27

如果您只需要支持现代浏览器,有一种简单的方法:在提交按钮上添加如下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>
Run Code Online (Sandbox Code Playgroud)

它也适用于<button>标签.

问题是旧版本的IE(<10)和Android浏览器(<4.0)不支持它.因此,如果您需要支持旧浏览器,那么现有的JS答案可能会更适合您.

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


小智 18

您还可以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>
Run Code Online (Sandbox Code Playgroud)

请记住,onSubmit优先级高于action属性.因此,无论何时指定onSubmit值,都将首先执行该操作,然后表单将移至操作.

  • 喝彩,使用更合适的提交事件,而不是单击。 (2认同)

Ode*_*ded 15

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