我有一个自动完成搜索字段(Bootstrap-3-Typeahead),该字段当前会在我使用up/down arrow keys
时触发。
我不确定为什么,但这是我的代码:
$(function() {
$("input[data-name='searchField']").typeahead({
autoSelect: false,
minLength: 2,
delay: 0,
fitToElement: true,
items: 7,
source: function(query, result) {
[source-irrelevant]
},
updater:function(item) {
$("input[data-name='searchField']").val($(item).text());
window.location = item.url;
}
});
});
<input type='text' data-name="searchField" id="searchText" class='form-control typeahead' placeholder="Text..." data-provide="typeahead" autocomplete="off" />
我仅在激活Enter键/鼠标左键单击/触按时才触发选择(window.location),并使用箭头键浏览菜单(我目前可以导航得足够快,但是它也会触发window.location)
答案 0 :(得分:0)
您需要将changeInputOnMove
选项设置为false
。
编辑示例:
$(function() {
var $input = $("input[data-name='searchField']");
$input.typeahead({
autoSelect: false,
minLength: 2,
delay: 0,
fitToElement: true,
items: 7,
changeInputOnMove: false,
source: function(query, result) {
[source-irrelevant]
},
updater:function(suggestion) {
window.location = suggestion.url;
}
});
$input.bind('typeahead:change', function(ev, suggestion) {
window.location = suggestion.url;
});
});