在字段中按Enter键时,从Typeahead.js中选择第一个建议

时间:2014-11-06 16:59:38

标签: jquery twitter-bootstrap-3 typeahead.js

我想从Typeahead.js建议项目中选择第一个可用建议,当我按下Enter键时,我专注于该字段。

我现在有了这个代码:

$('#cities-prefetch .typeahead').on('keyup', function(e) {
    if(e.which == 13) {
        var value = $('input:text#city').typeahead('val');
    }
});

但是,它只从字段本身中获取当前选定的值。

请帮忙!

5 个答案:

答案 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键时,预先输入将自动选择第一个建议。默认为falserefrence

答案 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');
    }
  }
});