我希望两个不同的文本输入具有打字机,每个输入都具有不同的源函数。为了示例,一个人获取first_names和另一个last_names。
这是它的外观,它不起作用:
$('#first_name').typeahead({
source: function (query, process) {
$.get('/users/typeahead-first-name', { term: query }, function (data) {
return process(JSON.parse(data));
});
}
});
$('#last_name').typeahead({
source: function (query, process) {
$.get('/users/typeahead-last-name', { term: query }, function (data) {
return process(JSON.parse(data));
});
}
});
第一个打字机正常工作。但是,第二个,当我开始键入并且选项开始出现时,然后单击一个选项,下拉列表仅关闭而没有值插入输入字段。
任何人都知道如何使它起作用?
这可能有点迟了,但是我在自己的应用程序中遇到了同样的问题。解决方案是添加"名称"属性,例如:
$('#first_name').typeahead({
name: 'first_name',
source: function (query, process) {
$.get('/users/typeahead-first-name', { term: query }, function (data) {
return process(JSON.parse(data));
});
}
});
$('#last_name').typeahead({
name: 'last_name',
source: function (query, process) {
$.get('/users/typeahead-last-name', { term: query }, function (data) {
return process(JSON.parse(data));
});
}
});
只要它们与众不同,我在代码中称它们为什么。这也有意义,因为Typeahead可以保持大量响应。(尽管我以为他们只会将缓存绑在您将其绑定到的实例上,但是...)