获取Bootstrap的预先输入的选定项目值

T.S*_*.S. 13 jquery typeahead twitter-bootstrap

Bootstrap刚刚实现了一个名为typeahead的简洁自动完成功能.我无法获得文本输入的适当值.

例如,我可能有以下内容:

$('input').on('change', function(){
    console.log($(this).val());
});
Run Code Online (Sandbox Code Playgroud)

这似乎不会捕获所选值.有没有人知道如何使用带引导程序的typeahead获取所选值?

ymu*_*tlu 44

$('#autocomplete').on('typeahead:selected', function (e, datum) {
    console.log(datum);
});
$('#autocomplete').on('typeahead:cursorchanged', function (e, datum) {
    console.log(datum);
});
Run Code Online (Sandbox Code Playgroud)

似乎Typeahead已更改的侦听器和用法没有很好地记录.您可以使用这些侦听器.

UPDATE

事件名称已更改为typeahead:在更高版本中选择.

  • 这是官方的解决方案 (2认同)
  • 想知道为什么这个答案没有标记正确..虽然这是完美的答案 (2认同)

小智 20

你是从错误的角度看待它.Bootstrap的typeahead方法提供了一个选项,允许您传递接收所选值作为参数的回调函数.下面是一个简洁的例子,说明了这一个论点.

$('#typeaheadID').typeahead({
    updater: function(selection){
        console.log("You selected: " + selection)
    }
})
Run Code Online (Sandbox Code Playgroud)

干杯! 文档参考

  • 重要的是从updater函数返回选择.否则输入字段将为空 (4认同)

小智 7

我正在努力解决这个问题,现在我遇到了同样的问题.我打算用这个漂亮的叉子解决它

https://gist.github.com/1891669

我通过回调做到了:

  $('.typeahead').typeahead({
    // note that "value" is the default setting for the property option
    source: [{value: 'Charlie'}, {value: 'Gudbergur'}, ...],
    onselect: function(obj) { console.log(obj) }
  })
Run Code Online (Sandbox Code Playgroud)

希望它也能帮到你.

  • 我最终想出了如何做到这一点.您可以使用以下命令在jQuery中执行此操作:$("ul.typeahead.dropdown-menu").find('li.active').data('value'); (6认同)