javascript - 如何知道输入中输入的最后一个字符 - Javascript

标签 javascript input keyboard-events onkeyup

假设我们有以下输入:

<input id="myInput" type='text' onkeyup="validate(this.value)" />

function validate(character) {
    console.log(character)
}

问题是我只能得到输入的总体值。例如,如果我写 2,它会返回 2,但如果我写 7,它会返回 27,而它应该只返回 7。

最佳答案

只需检索 KeyboardEvent 属性 key来自这样的“keyup”事件:

//assign the input element to a variable
let input = document.querySelector("#myInput"); 

//add a keyup listener to the input that will run the function passing the event to the function as an argument
input.addEventListener("keyup", function(e) {
    console.log(e.key);
});
<input id="myInput" type='text'/>

JSFiddle 包含上述代码: https://jsfiddle.net/AndrewL64/n18wqzjm/4/


但是等等,如果我希望某些键运行其他内容(例如运行不同的 console.log)怎么办?

好吧,您只需添加一个条件语句来检查键属性值并将其与单个键进行比较,如下所示:

let input = document.querySelector("#myInput");

input.addEventListener("keyup", function(e) {
	if (e.key === "Delete") {
    //if the DELETE key is pressed, don't run the default console.log but do something else
    console.log("You are trying to add delete key as a character: " + e.key);
  } else if (e.key === "Escape") {
    //if the ESCAPE key is pressed, don't run the default console.log but do something else
  	console.log("You are trying to add escape key as a character: " + e.key);
  } else {
    //run the default console.log
  	console.log(e.key);
  }
});
<input id="myInput" type='text'/>

关于javascript - 如何知道输入中输入的最后一个字符 - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59593603/

相关文章:

input - struts-config.xml 文件 - 输入的目的

javascript - 无法在 webkit 浏览器的全屏模式下在文本输入中键入任何字母或数字

c# - WPF:如何在 Key* 事件中检测 Key 重复?

javascript - 模式的 Smarty 异常

javascript - 推送通知适用于 Firefox 但不适用于 Chrome : Required member title is undefined

javascript - 如何检测浏览器是否支持此 HTML5 功能

javascript - 如何在使用 Javascript 更改的输入字段中触发事件

javascript - 异步图片加载

javascript - 输入类型数字无法正常工作

winapi - 如何通过程序发送硬件级键盘输入?