如果语句仅在第二次按下时运行

问题描述 投票:0回答:1

[试图弄清楚为什么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可以。

javascript html keydown onkeydown
1个回答
4
投票

这是因为发生了keydownkeypress事件之前键入了实际的键。

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

© www.soinside.com 2019 - 2024. All rights reserved.