同一页面上具有两个不同源函数的两个引导程序打字



我希望两个不同的文本输入具有打字机,每个输入都具有不同的源函数。为了示例,一个人获取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可以保持大量响应。(尽管我以为他们只会将缓存绑在您将其绑定到的实例上,但是...)

最新更新