我想从Typeahead.js建议项目中选择第一个可用建议,当我按下Enter键时,我专注于该字段。
我现在有了这个代码:
$('#cities-prefetch .typeahead').on('keyup', function(e) {
if(e.which == 13) {
var value = $('input:text#city').typeahead('val');
}
});
但是,它只从字段本身中获取当前选定的值。
请帮忙!
答案 0 :(得分:13)
如果按下Enter键,您可以在第一个建议上触发click
$('#cities-prefetch .typeahead').on('keyup', function(e) {
if(e.which == 13) {
$(".tt-suggestion:first-child", this).trigger('click');
}
});
请参阅 Demo
答案 1 :(得分:2)
您可以使用autoselect
- 如果true
,当按下Enter键时,预先输入将自动选择第一个建议。默认为false
。
refrence
答案 2 :(得分:2)
这适用于我的情况。
$('[id$=_form]').on('keydown', '.twitter-typeahead #input_id', function(e) {
if(e.which == 13) {
e.preventDefault();
$('.tt-selectable').first().click();
}
});
答案 3 :(得分:1)
在typeahead.js 0.11.1中,这似乎对我有用。
$(element).on('keyup', function(e) {
if(e.which == 13) {
e.preventDefault();
//find the selectable item under the input, if any:
var selectables = $(element).siblings(".tt-menu").find(".tt-selectable");
if (selectables.length > 0){
$(selectables[0]).trigger('click');
}
}
});
答案 4 :(得分:0)
$(element).on('keyup', function(e) {
if(e.which == 13) {
e.preventDefault();
var selectables = $(element).siblings(".tt-dropdown-menu").find(".tt-suggestion");
if (selectables.length > 0) {
$(selectables[0]).trigger('click');
} else {
$(butto_element).trigger('click');
}
}
});