javascript - 使用带有 e.preventDefault() 的提交按钮与常规按钮
问题描述
我正在关注关于客户端存储的 MDN 文章(https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Client-side_web_APIs/Client-side_storage),我遇到了一段代码我有一个问题。该示例应该展示如何使用 Web Storage API 进行简单的数据持久性,因此它让我们在表单字段中输入名称,以便保存该数据并呈现跨会话持久的个性化问候语。为了接受用户输入,它使用一个<input type="submit">
按钮,然后在其上附加一个事件监听器form.addEventListener('submit', function(e) { e.preventDefault(); });
我在很多文章中都注意到了这种模式,所以我的问题是为什么我们应该使用提交按钮并防止默认提交行为而不是仅仅创建一个常规按钮?各有优势吗?需要明确的是,我不是在问为什么一般<input type="submit">
应该使用over ;我想知道为什么在我们有或时不需要提交的情况下使用。<button>
<input type="submit">
<button>
<input type="button">
解决方案
form.addEventListener('submit', function(e) { e.preventDefault(); });
不是绑定到按钮,而是绑定到表单提交。例如,用户可以通过按 Enter 提交表单。在移动设备上,键盘可能提供类似的功能。使用辅助技术的人也可能有其他选择。
这很重要,因为您向浏览器表达了意图。
拥有一个只有按钮本身可以工作的表单可能会非常令人困惑,但您可能习惯于使用其他方式不起作用。
推荐阅读
- c# - C#:如果 ELSE 替换
- function - 有没有办法定义一个在相同类型之间转换值的函数?
- json - 标头已发送 Yii2 错误,无法使用任何建议的方法解决它
- php - 如何在 PHP 的 Foreach 循环中添加导航栏选项卡?
- json - 颤振,Firebase | 在来自Json 和 toJson 函数的扑火文档中
- javascript - 从 UI 到 SQL 编辑器、React/JS 设置参数
- discord.py - 使用 discord.py 将表情符号添加到服务器
- swift - 根据 Swift 中的 macOS 版本设置一个常量值
- python - 如何在 Python 中从不同的文件夹导入文件
- java - 无法读取在 url 中打开的内容 pdf