Javascript向上箭头按键不触发

标签 javascript keypress

我最近一直在做一些 JS 并遇到这个愚蠢的错误,我可以使用 e.keyCode 检测返回键并检查 keyCode == 13 但是当我尝试检查 38(向上箭头)它永远不会触发。有什么帮助吗?

HTML:

<input type="text" id="TxtMessage" 
       placeholder="Message" onKeyPress="SendMsg(event)" >

Javascript:

function SendMsg(e)
{
var message = document.getElementById("TxtMessage");

if(e.keyCode ==13)
{
    var json = {"message": message.value};
    json = JSON.stringify(json);
    ws.send(json);
    PreviousMessage = message.value;
    message.value = "";
    message.focus();
}
else if(e.keyCode == 38) 
{ 
    message.value = PreviousMessage;
}
}

编辑:通过将 onKeyPress 更改为 onKeyDown 来修复...奇怪。

最佳答案

替换您的以下行:

if(e.keyCode !=13) return;
if(e.keyCode == 38) { message.value = PreviousMessage; return;  }

对于这个:

var charCode = typeof e.which == "number" ? e.which : e.keyCode;

if(charCode == 38) { message.value = PreviousMessage; return;  }
if(charCode !=13) return;

更新:
我上面的代码在按键事件中使用时仍然不起作用,因为正确的解决方案是使用keydownkeyup事件来捕捉箭头键。请参阅此处以获得增强的答案 https://stackoverflow.com/a/2218915/352672另见此处 working jsfiddle使用 keyup 事件。

关于Javascript向上箭头按键不触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14674414/

相关文章:

c# - KeyPressEventArgs.KeyChar 的值与 ctrl 键

javascript - 如何使用 Angular 提交简单的表单

javascript - 在 ASP.NET 中使用 javascript 隐藏和显示 div

java - 如何在Java中将keyPress变成大写?

javascript - 按键之间无延迟

javascript - IE 中 JavaScript 中的按键

javascript - 如何通过jquery访问选择动态创建的控件

javascript - 在日期 javascript 中添加天数

javascript - Jquery 不透明度淡入淡出循环

java - 使用 robots.keyPress() 后如何修复我的计算机按键配置?