我有一个下拉菜单 - 如何在keydown上触发js功能

时间:2010-11-09 15:00:27

标签: javascript ruby-on-rails

所以我有一个来自现有输入字段的下拉菜单。让我们说搜索朋友。当用户使用回车键选择朋友时,如何触发js功能。我可以使用onclick js属性来实现它,但它似乎不适用于onkeydown。

<% auto_complete_result_and_insert.each do |friend| %>
<li onkeydown="if (window.event.keyCode == 13) {alert('sth')}">
</li>
<% end %>

所以问题是如何检测用户何时按下我列出的项目?

2 个答案:

答案 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>