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

Rob*_*t C 2 html javascript 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')
    }
  }
Run Code Online (Sandbox Code Playgroud)

输入:

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

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

iPh*_*nix 5

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

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