如何在提交事件中获得formaction?

时间:2018-08-23 15:02:19

标签: javascript html

具有两个提交按钮的简单表单,如何在formaction事件中获取submit属性?

HTML代码:

<form id="FORM" action="/original">
  <input type="text">
</form>

<button form="FORM">original</button>
<button form="FORM" formaction="/formaction">formaction</button>

使用表单的formaction按钮action提交时,该事件仍然是原始的。

1 个答案:

答案 0 :(得分:2)

您可以通过使用document.activeElement抓住当前具有焦点的元素(发送提交事件之后)来获取覆盖的表单action

您可以查看发送提交事件的按钮上是否附加了formaction替代,否则,请使用原始的action

document.getElementById("FORM").addEventListener("submit", handleForm);

function handleForm(e) {
  e.preventDefault(); // for this example only

  let formAction = e.target.getAttribute("action");
  let activeElementAction = document.activeElement.getAttribute("formaction");
  let action = activeElementAction || formAction;
  console.log(action);
}
<form id="FORM" action="/original">
  <input type="text">
</form>

<button form="FORM">original</button>
<button form="FORM" formaction="/formaction">formaction</button>