我在多个输入中使用了typeahead.js方法typeahead
,我需要将所选值添加到当前输入附近的隐藏输入中。
var $input = $('.typeahead');
$input.typeahead({
...
afterSelect: function (item) {
$(this).next('.input-hidden').val(item.id);
}
});
但$(this)
在这种情况下不起作用。
我创建了一个示例:https://jsfiddle.net/hvwy6a5n/
答案 0 :(得分:1)
你可以尝试这样的事情: Updated Fiddle 。
注意,.next()
不起作用。 Typeahead会更改您的DOM结构,您需要相应地导航。
this
代表Typeahead
this.$element.context
这将为您提供当前输入。这将为您提供下一个输入
$(this.$element.context).parent().next().find(".typeahead")
答案 1 :(得分:0)
您没有提及this
是指某个其他对象是预先输入,还是this
是undefined
。如果它没有定义(我的猜测),那么您需要将其与afterSelect
绑定。
var $input = $('.typeahead');
$input.typeahead({
...
afterSelect: function (item) {
$(this).next('.input-hidden').val(item.id);
}.bind(this)
});