gpt4 book ai didi

javascript - 通过 javascript 提交时未捕获提交事件

转载 作者:行者123 更新时间:2023-11-30 16:51:29 25 4
gpt4 key购买 nike

我遇到的问题是,如果通过Javascript提交表单,我不知道为什么不能捕获提交事件。

代码:

<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
<form id="formA">
<input type="text" id="name" value="test"/>
<input type="button" id="btn" value="submit by js"/>
<input type="submit" id="btn2" value="submit directly"/> <!-- event can be triggered -->
</form>
</body>
<script type="text/javascript">
document.getElementById("formA").addEventListener("submit", function() {
console.log("form is submitted"); // no effect if submitting by js. WHY?
});
document.getElementById("btn").addEventListener("click", function() {
document.getElementById("formA").submit();
});
</script>
</html>

最佳答案

我相信这是正确的答案:

这是表单的预期行为:

The submit method does not invoke the onsubmit event handler.

引用:Microsoft - Event handler parameters

换句话说,当以编程方式提交表单时,不会触发 onsubmit 事件。它仅在单击提交按钮时触发。这是我在测试 OP 的代码时观察到的。

OP 还会向控制台输出一条消息,以测试表单是否已提交。但是,需要启用控制台持久性才能看到此消息。如果未启用,控制台日志将在提交表单时被清除(看起来没有打印任何消息)。

document.getElementById("formA").addEventListener("submit", function() {
console.log("form is submitted");
});

关于javascript - 通过 javascript 提交时未捕获提交事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30454831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com