Javascript if语句仅在第二个向下键上运行

Javascript if语句仅在第二个向下键上运行,javascript,html,keydown,onkeydown,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 sec

试图找出为什么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()}
 />
commentFieldHasText()}
/>

其他信息:onKeyPress也没有提供预期的功能。不过onKeyUp是这样做的

之所以发生这种情况,是因为
keydown
keypress
事件发生在实际键入键之前

要解决此问题,请尝试使用或
keyup
事件