Algolia使用select2自动完成js

时间:2016-06-01 10:24:32

标签: autocomplete algolia

我正在使用aloglia autocomplete.js并按照教程进行操作。 我想将自动填充文本框与其他select2选择框一起使用。

var client = algoliasearch('YourApplicationID','YourSearchOnlyAPIKey')
var index = client.initIndex('YourIndex');
autocomplete('#search-input', { hint: false }, [
{
  source: autocomplete.sources.hits(index, { hitsPerPage: 5 }),
  displayKey: 'my_attribute',
  templates: {
    suggestion: function(suggestion) {
      return suggestion._highlightResult.my_attribute.value;
    }
  }
}
]).on('autocomplete:selected', function(event, suggestion, dataset) {
console.log(suggestion, dataset);
$("#search-input").val(suggestion.full_name.name)
});

问题是当我点击自动填充框旁边的任何地方时,自动填充消失了,它只显示我之前输入的内容。

我不想让它消失。我该如何实现它?谢谢你的帮助。

请参阅下面的示例了解详细信息。

  

假设您有一个简单的表单,其中包含一个自动完成输入字段,两个select2框和一个提交按钮。选择自动完成归档后,当您单击任意位置时,它会更改为默认文本。我的意思是,你把" piz"它显示了"披萨"。因此,您选择披萨并显示"披萨"然后,您尝试选择一个select2框或单击任意位置。自动填充输入字段已更改回" piz"。

我尝试了自动完成功能:关闭,$("#search-input")。focusout设置输入字段,但它只是更改回我的查询。

2 个答案:

答案 0 :(得分:1)

为防止其消失,您可以使用autocomplete.js' debug选项:

autocomplete('#search-input', { hint: false, debug: true }, [ /* ... */ ]);

GitHub上提供complete options list

答案 1 :(得分:1)

现在我拥有它。当您只需选择而不执行任何操作时,您可以安全删除自动完成:已选择。并确保显示键的值为非对象

它为我省事。