gpt4 book ai didi

javascript - 即使监听函数返回 false,表单仍然被提交

转载 作者:数据小太阳 更新时间:2023-10-29 04:28:13 27 4
gpt4 key购买 nike

我想弄清楚为什么这个 JavaScript 没有阻止提交表单:

<form action="http://www.example.com" id="form">
<input type="text" />
<input type="submit" />
</form>

<script>
var code = function () {
return false;
};
var element = window.document.getElementById("form");
if (element.addEventListener) {
element.addEventListener("submit", code, false);
}
</script>

除非我将以下 onsubmit 属性添加到表单元素:

<form action="http://www.example.com" id="form" onsubmit="return false">
<input type="text" />
<input type="submit" />
</form>

<script>
var code = function () {
return false;
};
var element = window.document.getElementById("form");
if (element.addEventListener) {
element.addEventListener("submit", code, false);
}
</script>

似乎单独使用 addEventListener 方法就可以解决问题。有什么想法吗?我在 Mac 上,在 Safari、Firefox 和 Opera 上遇到相同的结果。谢谢。

最佳答案

将两个非常有用的答案中的信息组合成一个适用于 Mac 和 PC 的解决方案:

<script>
var code = function (eventObject) {
if (eventObject.preventDefault) {
eventObject.preventDefault();
} else if (window.event) /* for ie */ {
window.event.returnValue = false;
}
return true;
};
var element = window.document.getElementById("form");
if (element.addEventListener) {
element.addEventListener("submit", code, false);
} else if (element.attachEvent) {
element.attachEvent("onsubmit", code);
}
</script>

关于javascript - 即使监听函数返回 false,表单仍然被提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/967483/

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