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

标签 javascript html

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

HTML代码:

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

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

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

最佳答案

您可以通过使用 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>

关于javascript - 如何在提交事件中获得formaction?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51988827/

相关文章:

javascript - IE 8 浏览器不支持换行符 "\n"

javascript - 保存/编辑范围时显示当前日期(angularjs)

javascript - 你能引用处理程序调用函数的元素吗?

javascript - 如何使用javascript显示日期差异并禁用旧日期

javascript - 在输入字段中选择文件后浏览器卡住

javascript - 如果其文本等于某些文本,则更改选中的输入颜色

html - org 模式将反斜杠导出到 Latex 和 html

javascript - 如何获取整个 html 内容并存储在变量中以便在我的站点中重用

HTML SVG 元素未正确呈现 :

html - Css 悬停在图像上 - 加载一个 div