2013-03-06 71 views
2

當用戶執行以下操作之一時,從下拉列表框中獲取所選項目值的最佳方式是什麼?如何檢測鼠標點擊,在敲下的下拉列表框中輸入鍵或選項卡

命中物品上的TAB鍵,

按下回車鍵或

鼠標點擊的項目。

我是否必須爲每個事件創建一個JavaScript事件處理函數,或者是否有一種很好的方法來用敲除來實現。

有什麼好的jsfiddle例子可以看?

謝謝

+0

'value'綁定是這樣做的最好方法。 – Tyrsius 2013-03-06 23:08:51

回答

1

您可以使用捕獲這些事件的自定義綁定。

ko.bindingHandlers.tabEnterClick = { 
    init: function(element, valueAccessor) { 
     $(element).click(function() { 
      valuAccessor()(); 
     }).keydown(function(event) { 
      if (event.which == 13 /*enter*/ || event.which == 9 /*tab*/) { 
       valuAccessor()(); 
      } 
     } 
    } 
}; 

但是,如果你只是想知道從下拉選擇項目時,value結合這是否就好了。

+0

感謝您的建議,給我一些嘗試。我在事件綁定中遇到困難,它用於標記輸入字段,但點擊不會刷新所有其他可觀察對象,直到完成另一次點擊。它建立在jquery自動完成的基礎上,它接受一個輸入框,並在你輸入時將它變成一個下拉菜單。如果在單擊字段中或字段外的單擊之後點擊其他任何地方,那麼所有內容都會刷新,就像使用選項卡一樣。 – LRP 2013-03-07 02:51:40

相關問題