为什么我可以使用 Javascript 阻止 keydown 上的默认事件,但不能阻止 keyup 上的默认事件?

2023-11-27

使用时.keydown我可以捕获 keydown 事件,然后检查并防止默认操作(显示字符)。

使用时.keyup我不能?

我知道该事件被捕获为alert()当代码处于条件内但仍触发时触发preventDefault()不会阻止该操作。

这里有一个完整的DEMO


In keyup事件字符已被键入且无法撤消,但在keydown没有输入任何内容,浏览器已intent输入字符,这样您就可以取消浏览器意图。

每当您键入一个字符时,都会发生以下事件:

keydown-->keypress重复直到松开按键 -->keyup

  • keydown-> 可以阻止 -> 触发时press a key
  • keypress-> 可以阻止 -> 触发时hold a key
  • keyup-> 无法阻止 -> 触发时release a key
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我可以使用 Javascript 阻止 keydown 上的默认事件,但不能阻止 keyup 上的默认事件? 的相关文章

随机推荐

  • 如何在 PyQt 中使用 pdf.js 查看器渲染 PDF?

    我尝试在我的项目中添加 pdf js 查看器文件 它可以在 Chrome Mozilla Safari 等浏览器中运行 但它不会加载 node webkit 和 PyQt webkit 中的某些页面 我正在尝试使用 iframe 加载文件
  • 为什么只将数据存储在平衡二叉搜索树的叶节点中?

    我买了一本关于计算几何的好小书 在到处阅读时 我经常偶然发现这种特殊的二叉搜索树的使用 这些树是平衡的 应该只在叶节点中存储数据 而内部节点应该只存储引导搜索到叶节点的值 下图显示了该树的示例 其中叶子是矩形 内部节点是圆形 我有两个问题
  • JQuery 使用 .each() 延迟

    您有什么想法可以使用 JQuery 的延迟方法和一个函数来检测所有更改的表单并将每个表单作为 Ajax 帖子提交吗 如果我只列出大量表单提交 我可以得到同样的结果 但如果我使用 form changed each function retu
  • 预填充 HTML 表单文件输入

    我有一个 VBScript 它可以检查 HTML 表单 用固定值填充它 然后提交它 到目前为止它工作正常 但现在我需要设置将在表单数据中上传的文件的位置 我相信如果我将位置设置为该值 它就会起作用 但事实并非如此
  • 强制WebView在某个网络上运行

    是否可以强制WebView通过指定的方式加载 URLNetwork 我的设备打开了两个网络连接 wifi 和移动数据 移动数据网络被设置为传出连接的默认网络 因此连接管理器返回移动数据网络connectivityManager getAct
  • UIPickerView 与 NSDictionary

    我是一名 NET 程序员 也是 Objective C 的新手 我正在尝试制作一个 UIPickerView 它的作用类似于 NET 下拉列表 用户看到文本列表并选择一个 所选值 即 ID 将在代码中使用 我已经浏览了近半天试图弄清楚这一点
  • != 在 jade/pug 中起什么作用?

    在下面的翡翠代码中如何工作 messages extends layout block content spacer container row col lg 8 col lg offset 2 col md 10 col md offse
  • 将自定义 NSURLProtocol 与 UIWebView 和 POST 请求结合使用

    在我的 iOS 应用程序中 我使用 UIWebView 和自定义协议 带有我自己的 NSURLProtocol 实现 我非常小心地确保每当我加载 url 时 我都会将类似的内容加载到我的 UIWebView 中 myprotocol mys
  • 在共享库中使用全局变量

    我正在用 C 编写一个应用程序 它使用全局变量 日志文件结构 在我的应用程序中 我在运行时动态加载共享库 并且我想使用指向相同日志文件结构的全局变量来记录共享库 这在简单的方法中似乎是不可能的 将全局变量声明为 extern 将不起作用 因
  • 无法编译、无法执行dex、无法合并、非巨型指令

    我需要一些帮助 因为我自己无法找到解决方案 我阅读了很多帖子并进行了很多调查 但没有解决方案 我有一个项目 有一些子项目 操作栏 滑动 facebook 等 当我尝试编译它时 我总是收到以下错误 2013 07 31 14 44 06 De
  • 如何使用 LINQ 将字典的键和值合并到一个列表中?

    我有一本字典 其中键是一个字符串 值是与该键对应的字符串列表 我想显示字典中的所有键 并在该键下方显示与该键关联的值 像这样的东西 Key 1 Value 1 Value 2 Value 3 Key 2 Value 1 Value 2 在
  • Git 与 SVN 与非文本文件/大型项目

    过去几周我一直在学习 Git 与 SVN 相比 我真的很喜欢它的工作方式 我希望完全切换到它的主要原因是 合并应该更容易 几乎没有冲突 而且我可以在本地提交 这促进了许多分支的使用 例如每个票证 问题 任务 等的一个分支 并且还促进了许多提
  • 调整未知数量的元素大小以填充父容器的宽度

    我需要将未知数量的 div 可能限制为 5 左右 放入父容器中 并始终确保它们保持均等划分 我不确定这是否可以单独使用 CSS 来完成 但我想我最好问一下 因此 如果我们知道使用了 3 个 div div div class menu bu
  • cassandra 分片和复制

    我是 Cassandra 的新手 不过本文解释分片和复制 我陷入了一个困境 我的本地计算机上配置了一个包含 6 个 Cassandra 节点的集群 我创建一个新的键空间 TestKeySpace 复制因子为 6 并在键空间 employee
  • 位置管理器是在调度队列上创建的

    这个消息是什么意思 注意 位置管理器 0xe86bdf0 是在主线程以外的线程上执行的调度队列上创建的 开发人员有责任确保在分配位置管理器对象的线程上运行运行循环 特别是 不支持在任意调度队列 未附加到主队列 中创建位置管理器 这将导致无法
  • 从用户选择的文本返回 HTML

    我有以下非常简单的 html 页面 This is span style background color black color white the span
  • Spark:将大 MySQL 表读入 DataFrame 失败

    我想提前告诉您 以下几个相关问题不能解决我的问题 Spark查询运行速度非常慢 将 mysql 表转换为数据集非常慢 Spark 不会加载大型 MySql 表 Spark MySQL 从数据库读取时出错 This one很接近 但堆栈跟踪不
  • 为什么 jQuery 的电子邮件验证正则表达式如此简单?

    We all know that a regex to validate emails properly would be quite complicated However jQuery s validation plugin has a
  • 使用 git post-receive 挂钩的边带解复用器中出现错误

    我已经使用 git 设置了一个 EC2 实例 并使用 post receive hook 将其部署到我的服务器本教程 这是我的控制台的输出 git push production master email protected s passw
  • 为什么我可以使用 Javascript 阻止 keydown 上的默认事件,但不能阻止 keyup 上的默认事件?

    使用时 keydown我可以捕获 keydown 事件 然后检查并防止默认操作 显示字符 使用时 keyup我不能 我知道该事件被捕获为alert 当代码处于条件内但仍触发时触发preventDefault 不会阻止该操作 这里有一个完整的