JavaScript 阻止表单提交的正确方式:preventDefault 与 returnValue
作者:竹影时间:2026-10-24 17:04:44浏览:324
本文解析在JavaScript中如何正确阻止表单默认提交行为。针对早期代码中通过监听函数返回false无法生效的问题,推荐使用event.preventDefault()标准方法,并补充window.event.returnValue=false以兼容旧版IE浏览器。文章提供了完整的DOM绑定代码示例及W3C标准参考链接。
错误示例:监听函数返回false无效
示例代码如下:
<form action="https://www.jb51.net" 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> 正确实现:使用preventDefault及IE兼容方案
修正后的代码实现如下:
示例代码如下:
<form action="https://www.jb51.net" id="form">
<input type="text" />
<input type="submit" id="btnSubmit" name="btnSubmit" value="Submit" />
</form>
<script>
var code = function (eventObject) {
if (eventObject.preventDefault) {
eventObject.preventDefault();
} else if (window.event) /* for ie */ {
window.event.returnValue = false;
}
return true;
};
window.onload = function(){
var element = window.document.getElementById("form");
if (element.addEventListener) {
element.addEventListener("submit", code, false);
} else if (element.attachEvent) {
element.attachEvent("onsubmit", code);
}
}
</script>相关文档参考
注意事项:
1:preventDefault函数的使用请参考 https://developer.mozilla.org/en/DOM/event.preventDefault\n2:DOM Events :http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-Event-preventDefault
作者最新文章
网页开发三者分工:HTML结构、CSS样式与JavaScript交互怎么协作
2026-11-05 12:51:22
JS解析URL参数时怎么处理中文乱码和特殊字符
2026-11-05 12:47:23
js-cookie 存储 JSON 对象:自动序列化与反序列化技巧
2026-11-05 12:36:26
marked.js 快速上手:安装与基础 Markdown 转 HTML 示例
2026-11-05 09:32:53
Phaser.js 与 PixiJS、Cocos Creator 的技术选型对比
2026-11-05 08:36:30
