我正在使用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设置输入字段,但它只是更改回我的查询。
答案 0 :(得分:1)
为防止其消失,您可以使用autocomplete.js
' debug
选项:
autocomplete('#search-input', { hint: false, debug: true }, [ /* ... */ ]);
GitHub上提供complete options list。
答案 1 :(得分:1)
现在我拥有它。当您只需选择而不执行任何操作时,您可以安全删除自动完成:已选择。并确保显示键的值为非对象。
它为我省事。