第一次触发事件时,按键事件不会记录输入值

2023-11-25

第一次keypress事件触发时,即使输入有值,它也会记录一个空输入值。第二次它记录该值,但与输入值相比晚了一次击键。您可以在下一个示例中检查此行为:

document.addEventListener('DOMContentLoaded', () =>
{
    const input = document.querySelector('input');

    input.addEventListener('keypress', e =>
    {
        console.log(e.target.value);
    });
});
<input type="text"/>

然而,下一个解决方法使它工作,即使我传递0ms.

document.addEventListener('DOMContentLoaded', () =>
{
    const input = document.querySelector('input');

    input.addEventListener('keypress', e =>
    {
        setTimeout(() => console.log(e.target.value), 0);
    });
});
<input type="text"/>

为什么会发生这种情况?


当您按key第一次,分配给input is empty当时的keypress事件发生,然后该字符被添加到输入中,但过了一会儿。这同样适用于未来keypress事件的价值input您读到的是之前的上一篇input changes。另外,如果您阅读MDN有关于按键被删除的警告。因此,相反,您可能想听keyup事件如下一个示例所示:

const input = document.querySelector('input');

input.addEventListener('keyup', e =>
{
    console.log(e.target.value);
});
.as-console {background-color:black !important; color:lime;}
<input type="text" id="input">
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第一次触发事件时,按键事件不会记录输入值 的相关文章

  • 实现悬停信息框

    我有一个日历 当用户将鼠标悬停在单元格上时 会出现一个很大的信息框 其中包含该日期的详细信息 虽然当用户离开时使信息框消失 但我遇到了一些麻烦 我基本上想要它 这样当鼠标光标移出信息框隐藏的日历单元格时 它就会消失 但我遇到了麻烦 因为mo
  • 如何强制折断不可折断的字符串?

    我有一个根据数据库中包含的数据生成的 HTML 页面 数据库有时包含浏览器无法分解的长字符串 因为这些字符串不包含可分解的字符 空格 点 逗号等 有没有办法使用 html css 甚至 javascript 来解决这个问题 看到这个link
  • Javascript 在另一个函数中检测“Shift”键按下

    我正在从 Flash 影片 使用外部接口 调用我的 html 页面中的 Javascript 函数 并且我想知道调用该函数时用户是否按下了 Shift 键 例如 如果我通过鼠标单击调用该函数 这似乎很简单 因为我可以传递事件并检查 if e
  • 在多个动态添加的表单上初始化 jQuery validate() 函数

    有人建议最好初始化一个 form validate 在页面加载而不是点击事件上运行 jquery form validate 插件仅允许在输入更改时提交 https stackoverflow com questions 10984196
  • 无法读取未定义的“触及”属性

    为什么我会收到此错误无法读取未定义的属性 为什么无法读取formName controls email touched但它能够阅读formName get custDetails touched
  • Angularjs 完整日历不显示事件

    我正在用那个https github com angular ui ui calendar https github com angular ui ui calendar在 Angularjs 中使用 FullCalendar 它显示日历并
  • window.open:是否可以打开一个新窗口并修改其 DOM

    我想打开一个新窗口 var my window open iframe html blank height 600 width 600 但当我打开它时 我想修改它的DOM 我尝试过 var div my document createEle
  • JavaScript:常量属性

    在javascript中 我可以将对象的属性声明为常量吗 这是一个示例对象 var XU Cc Components classes or function aXU this Cc Components classes var XU new
  • 类型“void”不可分配给类型“((event:MouseEvent) => void) |不明确的'

    import as React from react import App css import PageTwo from components PageTwo export interface IPropsk data Array
  • 如何知道浏览器空闲时间?

    如何跟踪浏览器空闲时间 我用的是IE8 我没有使用任何会话管理 也不想在服务器端处理它 这是纯 JavaScript 方法来跟踪空闲时间 并在达到一定限制时执行一些操作 var IDLE TIMEOUT 60 seconds var idl
  • 有没有办法伪造同步 XHR 请求?

    我正在使用 Emscripten 系统将一堆 C 代码移植到 Javascript C 代码有很多调用fopen这是一个同步 IO 调用 在 Emscripten 中 我们使用对本地资源的 XHR 请求来模拟这一点however 在 Fir
  • 尝试使用 Firebug 查找 JavaScript 文件中的函数

    我试图找到这个函数调用 myFooBar 该函数在某些 HTML 中内联引用 但页面加载了大量 JavaScript 并且在每个文件中搜索该函数需要相当多的工作 如何使用 Firebug 找到此函数所在的 JavaScript 文件 打开脚
  • JavaScript 中的实时摩尔斯电码转换器

    在看到谷歌关于莫尔斯电码 gmail 的愚人节笑话后 我想我应该尝试用 javascript 创建一个实时莫尔斯电码转换器 我正在使用正则表达式和替换将莫尔斯电码更改为字符 例如 replace g a replace g r 我遇到的问题
  • Django 将 JSON 数据传递给静态 getJSON/Javascript

    我正在尝试从 models py 中获取数据并将其序列化为views py 中的 JSON 对象 模型 py class Platform models Model platformtype models CharField max len
  • 弹出窗口的动态高度取决于内容,可能吗?

    是否有可能获得一个宽度始终为 400px 的弹出窗口 但根据弹出窗口中的内容动态高度 我已经看到了这个 但不知道如何将其应用到弹出窗口 调整 iframe 的宽度高度以适应其中的内容 https stackoverflow com ques
  • 使用 AJAX 和 JQuery 按设定的时间间隔刷新 Rails 部分

    I have a page in my rails application that looks like 现在 我有另一个用 python 编码的人工智能应用程序 它处理视频 显示在 Rails 应用程序页面的左侧 并使用捕获的车辆及其相
  • 检测浏览器选项卡是否具有焦点

    是否有可靠的跨浏览器方法来检测选项卡是否具有焦点 场景是 我们有一个定期轮询股票价格的应用程序 如果页面没有焦点 我们可以停止轮询并为每个人节省流量噪音 特别是当人们喜欢打开具有不同投资组合的多个选项卡时 Is window onblur
  • DOM 解析器 Chrome 扩展内存泄漏

    问题 我开发了一个扩展程序 可以拦截 Web 请求 获取 Web 请求来源的 HTML 并对其进行处理 我使用 DOMParser 来解析 HTML 并且意识到 DOMParser 正在导致大量内存泄漏问题 最终导致 chrome 扩展崩溃
  • 如何获得 JavaScript 阶乘程序的循环来显示所使用的工作?

    你好 我面临着用 JavaScript 编写一个程序的挑战 尽管我对它不太了解 但它要求用户输入一个数字 然后计算该数字的阶乘 我使用了已经提出的问题并设法使计算正常工作 但无法获得所需的输出 我必须在以下输出中获取它 而不使用任何花哨的库
  • JQuery 删除和内存泄漏

    我正在开发一个游戏 我看到了很多内存消耗 我使用jquery animate 动画完成后 我 remove 元素 我的问题是 从 dom 树中删除一个元素后 对象还存在记忆中吗 Javascript 是一种垃圾收集语言 这意味着当没有代码保

随机推荐

  • 在ggplot2中标记特定点

    我正在尝试在 ggplot2 中的特定散点图中标记各个兴趣点 我的数据以包含多列的 csv 文件形式存在 Gene chr start stop A B C D E APOBEC3G chr22 39472992 39483773 97 0
  • 尽管安装了 gem,但仍找不到 gem

    我已经构建了我的第一个 gem 但我似乎无法正确安装它 我可以发出命令 sudo gem install ceilingfish toto 产生输出 Successfully installed ceilingfish toto 0 3 6
  • 当Python对象被删除时,Ctypes结构和指针是否自动释放内存?

    使用 Python CType 时 存在允许您在 Python 端克隆 C 结构的结构 以及从内存地址值创建复杂 Python 对象并可用于通过引用来回传递对象的 POINTERS 对象 C代码 我在文档或其他地方找不到的是 当包含从 C
  • IE8 浏览器不支持 IndexOf

    我的应用程序中有级联下拉菜单 使用 jquery 级联 现在我的问题是它可以与 IE9 Firefox Opera 和 Safari 顺利工作 但不能与 IE7 IE8 等任何浏览器一起工作 我浏览了这个问题 发现错误是由于我的jquery
  • Firebase 存储覆盖文件

    我的程序中有一个小错误 我的应用程序中有 firebase 存储 我想让用户将图像上传到存储 问题是当用户上传图像然后尝试上传另一张图像时 该程序会覆盖之前上传的图像 我想要的是当用户想要上传另一张图像时避免 覆盖 并将两个图像保存在不同的
  • 从 NSArray 获取字符串值

    我有一个NSArrayController当我得到selectedObjects并创建一个 NSString 其值为valueForKey Name 它返回 This is still a work in progress 我想要的只是其中
  • 如何在不重新组合的情况下获得精确的尺寸?

    我需要可组合项的大小来绘制动态线条 但我不想通过以下方式获取大小 var size by remember mutableStateOf IntSize Zero Modifier onSizeChanged size it or Modi
  • Android锁屏API?

    我见过两个可以自定义锁屏的应用程序 Widget locker slidescreen 我们真的有一个 API 可以让我们自定义锁屏吗 如果不是的话 有什么技巧呢 请参阅 mylockforandroid 安卓版的我的锁 它是 GPL 的
  • 将文件分块发送到 HttpHandler

    我正在尝试将文件分块发送到 HttpHandler 但是当我在 HttpContext 中收到请求时 inputStream 为空 所以 a 发送时我不确定我的 HttpWebRequest 是否有效 b 在接收时我不确定如何检索 Http
  • 当前目录中包含多个 jar 文件的 javac 类路径选项导致错误

    环境 Windows 7 Java 6 尝试使用 cp 选项编译 java 文件 该文件使用当前目录中的单个 jar 文件以及当前目录中的一些其他 jar 文件 javac cp jar MyFile java 不起作用 javac cp
  • 未经授权的请求后抑制 NTLM 对话框

    在最近的一个共享点项目中 我实现了一个身份验证 Web 部件 它应该取代 NTLM 身份验证对话框 只要用户提供有效的凭据 它就可以正常工作 每当用户提供无效凭据时 Internet Explorer 中就会弹出 NTLM 对话框 我的 J
  • 获取文件的创建日期/时间

    这似乎是一个非常简单的问题 但我无法在网上找到明确的答案 如何通过 Java 的文件管理器获取文件创建的日期 时间 除了文件名之外 我还能获得有关文件 属性 的哪些信息 我不确定如何使用 Java 6 及更低版本获得它 使用 Java 7
  • 零除错误 (Python)

    我收到一些图像的零除错误 尽管其中很多都工作得很好 这是代码 image skimage io imread test png False image gray skimage io imread test png True blurred
  • 为什么模板只能在头文件中实现?

    引用自C 标准库 教程和手册 目前使用模板的唯一可移植方法是通过使用内联函数在头文件中实现它们 为什么是这样 澄清 头文件不是only便携式解决方案 但它们是最方便的便携式解决方案 警告 它是not有必要将实现放入头文件中 请参阅本答案末尾
  • 无法在 LazyColumn 中使用屏幕底部的 TextField

    我有这个代码 setContent val items mutableListOf
  • 迁移到 AndroidX

    好吧 我开始从一个一年前的项目迁移到 AndroidX 此后一直没有动过 但我在资源和 gradle 构建方面遇到了问题 我完全迷失了新的命名空间 我更改了其中一些命名空间 我升级了 AndroidStudio 告诉我的所有内容 但仍然无法
  • sdkman安装的`sdk`命令在哪里

    我刚刚安装sdkman用于在我的机器 MacOS 上安装 grails 当我跑步时which sdk命令我没有得到任何输出 但是当我运行sdk help命令 shell 能够解析它并给出正确的输出 我检查了 PATH 环境变量中提到的所有目
  • React Native - 如何从 ScrollView 获取视图的 Y 偏移值?

    我正在尝试获取视图的滚动位置 但价值为页面的 Y 偏移量这与视图的位置无关 滚动视图层次结构
  • 在 Android 模拟器中切换到横向模式

    这可能是一个很容易回答的问题 但在搜索文档和谷歌几个小时后我自己找不到解决方案 我将 Android 应用程序的方向设置为landscape in the AndroidManifest xml file android screenOri
  • 第一次触发事件时,按键事件不会记录输入值

    第一次keypress事件触发时 即使输入有值 它也会记录一个空输入值 第二次它记录该值 但与输入值相比晚了一次击键 您可以在下一个示例中检查此行为 document addEventListener DOMContentLoaded gt