有一个带有两个提交按钮的简单表单,如何在 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/