Jquery 获取引导的typeahead的选定项值

Jquery 获取引导的typeahead的选定项值,jquery,twitter-bootstrap,typeahead,Jquery,Twitter Bootstrap,Typeahead,Bootstrap刚刚实现了一个称为typeahead的自动完成功能。我无法为文本输入获取适当的值 例如,我可能有以下内容: $('input').on('change', function(){ console.log($(this).val()); }); 这似乎不会捕获选定的值。有人知道如何使用带引导的typeahead获取所选值吗?如果页面上只有1,您可以尝试使用$'ul.typeahead li.active'。数据'value';但是如果一个页面上有超过1个,您可能会遇到问

Bootstrap刚刚实现了一个称为typeahead的自动完成功能。我无法为文本输入获取适当的值

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

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

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

如果页面上只有1,您可以尝试使用$'ul.typeahead li.active'。数据'value';但是如果一个页面上有超过1个,您可能会遇到问题


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

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

我是通过回调来实现的:

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

希望它也能帮助你。

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

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

您只需在回调函数中传递itemSelected,它将为您提供所选项目

希望这对你有用

$('#autocomplete').on('typeahead:selected', function (e, datum) {
    console.log(datum);
});
$('#autocomplete').on('typeahead:cursorchanged', function (e, datum) {
    console.log(datum);
});
似乎Typeahead更改的侦听器和用法没有很好的文档记录。您可以使用这些侦听器

更新


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

如果您正在使用另一个按钮处理所选项目,或者需要在更新后立即获取此项目,则可以使用$your_input.nextul.findli.active.datavalue;为了得到你的价值


为ajax引导typeahead工作。

我最终想出了如何做到这一点。您可以在jQuery中使用:$ul.typeahead.dropdown menu.find'li.active'。data'value';冒着无耻的自我推销的风险,我为插件添加了功能,因为我发现它对于使用复杂JSON源的真实场景来说太原始了,在选择某个项目时执行操作。您可以看到它,至少您可以理解如何操作结果。重要的是从updater函数返回选择。否则,输入字段将为空。这仅在用户实际选择了某个项目时有效。如果我希望当前突出显示的值而不是选中的值,则此操作将不起作用。此操作起作用,它应该是已接受的答案。这是官方解决方案。不知道为什么此答案未标记为正确。。虽然这是最完美的answer@Rohit还有一些人评论为什么这不是选择的答案-因为最初的问题是关于,这个答案是针对更新的,独立的,它在2012年还不可用。请注意,事件名称已更改为typeahead:select(在更高版本中)。@ymutlu我在尝试传入datum.id时未定义。如何访问用户id以使其成为指向“用户显示”页面的可单击链接?这在选择框中的模糊事件中对我有效:$This.parent.findul.typeahead li.active.datavalue
$('#autocomplete').on('typeahead:selected', function (e, datum) {
    console.log(datum);
});
$('#autocomplete').on('typeahead:cursorchanged', function (e, datum) {
    console.log(datum);
});