gpt4 book ai didi

javascript - String.fromCharCode 在 jQuery 中不显示 'Enter' 的任何内容

转载 作者:行者123 更新时间:2023-12-01 05:36:03 25 4
gpt4 key购买 nike

我正在做一个 JavaScript 计算器,并尝试将按键事件映射到适当的按钮事件。因此,当用户按下 1 时,$('#one').click 将被触发,依此类推。我的代码基本上是这样做的:

$(document).keypress(function(e) {

var keyPressed = (String.fromCharCode(e.which));
switch(keyPressed) {
case '1':
$('#one').trigger('click');
break;
case '2':
// etc.....
}
}

当我按下 Enter 键时,我从 e.which 中得到 13 作为字符代码。但是,当我将 13 传递给 String.fromCharCode 时,我得到一个空字符串(实际上,我不确定它是空字符串还是带空格的字符串,我不太明白)。有人可以解释为什么会发生这种情况吗?如果可能的话,如何在 case 语句的逻辑中捕获“Enter”按键(我知道我可以使用一个对象并将键/按键字符串映射到值/buttonID 以避免出现这种情况)?

最佳答案

我知道这已经过时了,但今天我们可以使用此事件的一些其他属性。

例如,如果用户按数字“1”键,则:

event.charCode || event.keyCode || event.which // will give us 49
event.key // will give us "1"
event.code // will give us DigitOne

运行示例:

const input = document.getElementById("myInput");

input.addEventListener('keypress', event => {
console.clear();
const {key, code, charCode, keyCode, which} = event;
console.log("key - ",key);
console.log("code - ",code);
console.log("charCode - ",charCode);
console.log("keyCode - ",keyCode);
console.log("which - ",which);
input.select();
});
<input id="myInput" value="" placeholder="type me"  />

docs

关于javascript - String.fromCharCode 在 jQuery 中不显示 'Enter' 的任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33986014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com