为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工作。