在输入键上触发的AngularJs Bootstrap typeahead检测事件

时间:2016-06-15 11:06:52

标签: javascript angularjs twitter-bootstrap

我有一个角度bootstrap typeahead,代码如下所示。

Html:

<div class="col-sm-12 dlg-zero-margin-padding hide-last-result" align="left">
    <input type="text" id="myInput" 
        ng-model="selected" 
        ng-keyup="myKeyUp(event,this.value)"
        typeahead="item for item in filterInput($viewValue)"
        typeahead-on-select='onSelect($item)'>                       
</div>

我的控制器

$scope.myKeyUp(event, value) {
    debugger;
}
$scope.onSelect(event, value) {
    debugger;
}

当鼠标焦点位于任何预先输入选项上时,无论鼠标单击还是输入按键,都会调用onSelect函数。 I.E只要做出选择就会调用它。但我想区分鼠标点击并输入键选择,因为我想在每种情况下添加一些不同的流程。

如何在输入按键和鼠标单击时调用2个单独的功能。或者我可以在onSelect功能中检测到按键输入或鼠标单击吗?

请注意:当按下&#34时,键盘事件(即myKeyUp())不会触发;输入&#34;。只调用onSelect函数。

1 个答案:

答案 0 :(得分:0)

在您的功能中,您可以识别是否按下了输入键并处理两种情况

$scope.onSelect(event, value) {
if(event.which ===13){
//enter is pressed
}else{
debugger;
}
}