当文本框处于焦点上时,我怎样才能听下箭头按下

问题描述 投票:0回答:3
  1. 当文本框处于焦点上时,我怎样才能听取向下和向上箭头的按下?
  2. 如何使用代码获得对元素的关注?

更新

我想要这个用于自动完成搜索。它在工作; all I want now 当键入时按下向下箭头键时,焦点将移动到下拉列表。

javascript dom-events
3个回答
3
投票

您可以订阅

onkeydown
活动:

<input type="text" onkeydown="myFunc(this, event)" />

并在函数内部检查键代码,以确定使用代码按下了哪个键:

function myFunc(sender, e) {
    var key = e.which ? e.which : e.keyCode;
    if (key === 38) {
        // up arrow was pressed
    }
}

这是一个demo.

就将焦点设置到给定元素而言,您可以使用

focus()
函数:

document.getElementById('id_of_element').focus();

1
投票

您可以使用名为

jQuery
的优秀 keyz
插件
来检测按下哪个键以及
ctrl
alt
shift
组合。我已经设置了一个有效的fiddle。您可以使用箭头键(上/下)将焦点从一个文本框移动到另一个文本框。


1
投票

我倾向于使用图书馆来处理这类东西; John Resig 的 jQuery Hotkeys 大部分时间都能完成这项工作。您可以使用 focus 和 blur 事件绑定和取消绑定热键处理程序:

handlerFn = function() { ... };
$('input.my-text-box').focus($(document).bind('keyup', 'down', handlerFn);
$('input.my-text-box').blur($(document).unbind('keyup', handlerFn));
© www.soinside.com 2019 - 2024. All rights reserved.