+-
我正在为网站制作一个AutoSuggest窗口小部件,其工作方式是,当用户在输入文本框中输入内容时,将显示带有建议的div,并且用户可以通过鼠标或上下箭头浏览它。每个单词都是单独建议的(与Google建议的单词在整个短语中的位置不同)。
我在使用Google Chrome浏览器输入框时遇到问题,因为当我按下向上或向下箭头时,浏览器的默认行为是-用carret跳转到文本框的末尾或开头(例如使用Home或End按钮)。在Firefox或Internet Explorer上没有这种影响。如何禁用此效果?
我从事件处理程序函数返回'false',并且还从此处使用了一个函数http://www.javascripter.net/faq/canceleventbubbling.htm,但carret在Chrome上仍在跳跃...
编辑:在Safari上具有相同效果...
我正在为网站制作一个AutoSuggest小部件,该小部件的工作方式是,当用户在输入文本框中输入内容时,将显示带有建议的div,并且用户可以通过...浏览它]]
0
投票
投票
您是否尝试阻止默认行为?
window.addEventListener('keydown', function(e) { e.preventDefault(); ... }, false);
0
投票
投票
并非完全是问题的真正解决方案,但我已经通过使用此功能完成了变通方法 http://blog.vishalon.net/index.php/javascript-getting-and-setting-caret-position-in-textarea/并在事件发生之前(或在击键事件被触发时不完全清除)捕获到炮弹的位置,然后在事件发生后将其重新设置。