Javascript 如何防止钥匙损坏&;HTML输入字段中的关闭行为?

Javascript 如何防止钥匙损坏&;HTML输入字段中的关闭行为?,javascript,jquery,Javascript,Jquery,我知道在stackoverflow上也有类似的问题,但是 我认为它们都没有有效的解决方案。因此,当您在HTML输入字段上输入key UP或Down时,光标会自动移动到输入值的前端/末尾 (您可以通过stackoverflow站点右上角的搜索框进行检查) 我想删除这个 我尝试了以下代码,但没有成功: $(document).on("keydown", "#input_field", function(event) { if(event.which==38 || event.which==4

我知道在stackoverflow上也有类似的问题,但是 我认为它们都没有有效的解决方案。因此,当您在HTML输入字段上输入key UP或Down时,光标会自动移动到输入值的前端/末尾

(您可以通过stackoverflow站点右上角的搜索框进行检查)

我想删除这个

我尝试了以下代码,但没有成功:

$(document).on("keydown", "#input_field", function(event) {
    if(event.which==38 || event.which==40){
        event.preventDefault();
    }
});

有什么解决办法吗?

我不认为有必要阻止一个相当有用的行为,但这对我来说适用于SO搜索框:

$(document).on("keydown keyup", "#search input", function(event) { 
    if(event.which==38 || event.which==40){
        event.preventDefault();
    }
});

此代码同时针对
keyup
keydown
事件。

为什么要这样做?@SwaroopNagendra我正在编写一个使用箭头键的浏览器游戏。防止默认浏览器行为是至关重要的。。。例如,答案是否解决了问题?当您键入并显示带有建议的下拉列表时,您可以使用
keyup
keydown
导航建议。因此,在这种情况下,您不希望光标移动到开始/结束位置。此答案提供了问题中给出的确切代码。它也不起作用。@IanS,这不是问题中的确切代码,而是在
keydown
keydup
中添加了两个事件侦听器。它适用于Chrome和Firefox中的StackOverflow(实际上,原始代码现在也可以工作,只要选择器指向
输入
字段),我认为它在编写答案时的当前版本中不起作用,这可能需要添加
键控
侦听器。如果你能详细说明你的测试细节或发布一个问题,我或其他人可能会提供帮助。我为没有看到keyup而道歉。我对这件事更有意义;我的代码是相同的,只使用Vue.js指令来侦听keyup和keydown函数