2010-11-09 26 views
0

所以我有一個現有的輸入字段,在旅途中生成的下拉菜單。讓我們說找朋友。當用戶使用回車鍵選擇一個朋友時,如何激發一個js功能。我可以用onclick js屬性來做,但它似乎不適用於onkeydown。我有一個下拉菜單 - 我如何觸發keydown上的js功能

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

所以問題是如何檢測用戶何時按下列出的項目上的輸入?

回答

1

如果您使用的是Ruby on Rails,那麼您有Prototype框架。 Prototype將允許您觀察按鍵事件。

這裏的鏈接到API: http://api.prototypejs.org/dom/event/

這就是你正在尋找的代碼:

Event.observe(id_of_element, function(event) { 

    if(event.keyCode==13) { 

     // do your thang 

    } 

}); 
1

我不知道李的(或者說點其他任何​​不可聚焦項)實際上可以處理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> 
+1

'window.event'而不是'window.Event'做它的一個例子。而且,在'keydown'事件中,無論瀏覽器如何,'keyCode'都是您需要的唯一屬性。 'handleKey'可以寫成'function handleKey(e){if(e.keyCode == 13){alert('sth'); }}' – 2010-11-09 16:26:03

相關問題