javascript - if 语句仅在按下第二个键时运行

标签 javascript html keydown onkeydown

试图找出为什么这里的 if 语句只在用户第二次按下某个键时运行。我试图让它从按下第一个键开始运行。

功能:

const commentFieldHasText = () => {
    const commentInput = document.querySelector('.add-comment')
    console.log('runs first keypress')

    if (commentInput.value) {
      console.log('only runs second keypress')
    }
  }

输入:

 <input 
   className="add-comment"
   placeholder="Add a public comment" 
   onKeyDown={() => commentFieldHasText()}
 />

其他信息: onKeyPress 也没有提供预期的功能。 onKeyUp 确实如此。

最佳答案

发生这种情况是因为 keydownkeypress 事件发生在实际按键输入之前。

要解决此问题,请尝试使用 inputkeyup 事件。

关于javascript - if 语句仅在按下第二个键时运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59347684/

相关文章:

javascript - 使变量名成为动态变量

javascript - Twitter Bootstrap Affix - 如何坚持到底?

javascript - JQuery if-else 跳过第一个有效条件后的所有内容

html - 我怎样才能拥有空白扉页?

javascript - 确定是否按下了字母或数字 - Javascript

javascript - Handlebars.js 使用 noEscape 选项禁用转义?

来自 WEBVTT 的 RDF/JSON 的 Javascript 解析器

javascript - 未捕获的类型错误 : Cannot read property 'length' of undefined in d3

javascript - addEventListener ('keydown' ,handlekeydown,false) 与 .onkeydown 以不同方式替换键入的击键

python - 如何让你的角色移动而不需要反复点击按钮?