不推荐在form标签中使用action="javascript:void(0)",因其破坏语义性、影响可访问性且不利于维护;应改用addeventlistener监听submit事件并调用event.preventdefault(),或退而求其次使用action="#"并配合preventdefault()。

直接在 form 标签中写 action="javascript:void(0)" 确实能阻止页面跳转和刷新,但这不是推荐做法,存在可访问性、语义性和维护性问题。
为什么不建议用 javascript:void(0)
这个写法本质是让表单提交后执行一个空操作,浏览器不会导航,但表单仍会触发默认提交行为——只是目标是“空”,容易引发混淆。它绕过了 HTML 表单的语义本意,对屏幕阅读器不友好,也不利于后续扩展(比如加验证、加 loading 状态)。
更合理的替代方案:用 JavaScript 阻止默认行为
给 form 绑定 submit 事件,调用 event.preventDefault(),既清晰又可控:
- 保留 form 的语义结构,利于 SEO 和辅助技术
- 便于添加表单验证、异步提交(如 fetch/AJAX)、按钮状态控制
- 代码意图明确,团队协作更易理解
示例:
<script><br> document.getElementById('myForm').addEventListener('submit', function(e) {<br> e.preventDefault(); // 阻止刷新<br> // 这里写你的处理逻辑,比如发请求<br> });<br> </script>
如果必须用 inline 写法,至少改用 #
若因历史原因或简单场景需内联写法,action="#" 比 javascript:void(0) 更轻量、更常见,但依然要配合 event.preventDefault() 或返回 false(不推荐后者,已过时)来真正阻止跳转。
补充提醒:别忽略 button 类型
确保提交按钮写成 <button type="submit"></button>,而不是默认的 type="button"。否则即使写了 action,点击也不会触发表单提交,导致 JS 监听不到 submit 事件。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











