JavaScript:在输入文本上使用向上和向下箭头

标签 javascript html events user-interface keyboard

我的 javascript 键有问题,Chrome(目前仅在 chrome 上进行测试)无法识别文本输入上的向上和向下箭头,因为它具有更改插入符号位置的默认行为。 我的代码如下:

 if (!e) e = window.event;
var keyCode = e.keyCode || e.which;

if (keyCode == '13'){ //enter key
    //some code that works
    return false;

}else if(keyCode=='38'){ //up key
    //some other code that doesn't work
    return false;

}else if(keyCode=='40'){ //down key
    //some other code that doesn't work
    return false;
}

如果有人有解决方案,我将不胜感激。 谢谢!

最佳答案

很难看出代码来自哪里(我猜是按键监听器)。 正如您在下面看到的和 this fiddle (正如 Teemu 也指出的那样),方向键上不会调用按键。

另一方面,使用 event.preventDefault() 来阻止浏览器的默认行为,在您的情况下是插入符号的放置,您的监听器函数也可以将事件对象作为参数除外。

var listener = function (e) {
    e = e || window.event;

    alert(e.type);
    var keyCode = e.keyCode || e.which;

    if(keyCode=='38' || keyCode=='40'){ //arrow key
        alert("arrow!");
        e.preventDefault();
        return false;

    }        
}

var elem = document.getElementById('input');

elem.addEventListener('keydown', listener, false);

关于JavaScript:在输入文本上使用向上和向下箭头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24190705/

相关文章:

android - Android应用程序中事件总线可以完全取代Intent吗?

javascript - 高速 Javascript 基准测试

javascript - 在 JavaScript 中使用 forEach 将数组的所有元素乘以数字

javascript - 需要 : HTML 5/Javascript UI Component to do "Matching"/"Data Mapping" UI

HTML - 链接到不同文件夹中的文件

Java 监听器继承

javascript - (JavaScript) 为什么 while 循环中 'if' 内的 continue 语句会使浏览器崩溃?

PHP输出到变量

html - 如何使 div 和 span 元素沿同一行居中?

c# - WinForm 控件事件处理程序顺序