所以我有一个来自现有输入字段的下拉菜单。让我们说搜索朋友。当用户使用回车键选择朋友时,如何触发js功能。我可以使用onclick js属性来实现它,但它似乎不适用于onkeydown。
<% auto_complete_result_and_insert.each do |friend| %>
<li onkeydown="if (window.event.keyCode == 13) {alert('sth')}">
</li>
<% end %>
所以问题是如何检测用户何时按下我列出的项目?
答案 0 :(得分:1)
如果您正在使用Ruby on Rails,那么您就拥有了Prototype框架。原型将允许您观察关键事件。
以下是API的链接: http://api.prototypejs.org/dom/event/
以下是您正在寻找的代码:
Event.observe(id_of_element, function(event) {
if(event.keyCode==13) {
// do your thang
}
});
答案 1 :(得分:1)
我不确定LI(或其他任何不可聚焦的项目)是否可以实际处理onkeydown事件,因为它们无法获得焦点。键可以处理具有焦点的项目。
更新:是的,只要他们有tabindex,他们就可以有焦点。只需将不同的tabindex =“1”,2等分配给LI项目。
以下是如何使用普通表单字段
的示例<script>
function handleKey(e){
var n = (window.Event) ? e.which : e.keyCode;
if (n == 13) {alert('sth')}
}
</script>
<select onkeydown="handleKey(event);">
<option value="test">test</option>
<option value="test">test</option>
</select>