所以我正在使用输入,需要获取键码,所以我尝试使用onkeypress。但是,我还需要更新的值,该值在触发keypress事件时实际上并没有。

因此,我尝试使用oninput,但是,尽管有输入的更新值,但它没有注册keyCode

现在,我正在使用这两个事件,但想知道是否有一个包含keyCode和更新的input的包罗万象的事件。



$("#test").on('keypress', () => {
  console.log("keypress value: ", event.target.value);
});
$("#test").on('input', () => {
  console.log("input value: ", event.target.value);
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="test" />

最佳答案

您可以使用keyup事件。这将同时给您keycodeupdatedValue



$("#test").on('keyup', function(e) {
  console.log(e.keyCode, this.value)
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="test" />





当您键入一个键时,发生以下事件


按键按下:这将记录正在按下的按键。如果要防止键入任何键,请在此处阻止它。
按键:这将记录正在按住的键。其值在keyDown上设置,并在keyUp上擦除。
按键向上:这是您松开按键并完成事件链的时间。这是更新值的事件。

关于javascript - onkeypress与oninput如何获得两全其美,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43488429/

10-11 12:15