2013-03-06 70 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

相关问题