自定义自动完成箭头控制

Custom autocomplete arrow control

本文关键字:控制 自定义      更新时间:2023-09-26

我正在尝试自定义自动完成输入(我知道jQuery UI自动完成,但我决定写一个简单的)。一切都很顺利,我做了所有"一般"的事情——向一些PHP脚本发送数据,接收建议。然后我启用了鼠标点击选择元素,并使用向下箭头向上箭头输入键进行了一些导航。但我的目标是实现"按住上下箭头键"的导航功能(快速浏览)。输入上的处理程序监听keyup事件,我完全理解我想要的是keypress事件,因为它保持键保持。但keypress只适用于可打印的字符,不包括向下箭头'向上箭头。所以问题是:我如何在没有keypress的情况下使其工作,或者我是否可以以某种方式覆盖此事件维护的键?

谢谢大家,我找到解决办法了。虽然keypress只能在可打印的字符上触发,但最新的Opera和Firefox 5确实支持它。但是Chrome(可能还有Safari,因为它们非常相似)没有,而keydown给出了我需要的结果。

如果没有办法克服keypress的困难,试试这样做。这是伪代码,我没有做所有的键码检测。

var keyStop
onkeydown = function(){
  keyStop = setInterval(function(){scrollDown()},250);
}
onkeyup = function(){
  clearInterval(keyStop);
}

如果你因为某种原因在你的开发中卡住了,我会推荐Better Autocomplete,这是一个轻量级的jQuery插件,很容易自定义