为Bootstrap的typeahead获取所选项目值

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

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

$('input').on('change', function(){ console.log($(this).val()); }); 

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

如果您在页面上只有1,则可以尝试$('ul.typeahead li.active').data('value'); 但如果页面上的数量超过1,则可能会出现问题。

我想知道输入值没有设置的原因是什么?

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

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

UPDATE

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

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

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

干杯! 文档参考

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

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) } }) 

希望它也能帮到你。

 $('#myselector').typeahead({ itemSelected:function(data,value,text){ console.log(data) alert('value is'+value); alert('text is'+text); }, //your other stuffs }); 

你必须在回调函数中传递itemSelected,它将为你提供所选的项目。

希望这对你有用。

如果您使用其他按钮处理所选项目或需要在更新后立即获取此项目,您可以使用$("#your_input").next("ul").find("li.active").data("value"); 获得你的价值。

为ajax bootstrap typeahead工作。