我正在尝试使用jquery ui自动完成的JSON对象。没有太大的成功。我看了https://jqueryui.com/autocomplete/#custom-data。但是这个例子有太多多余的代码,我不需要。无论如何,json对象不起作用;没有可见的事情发生。我试图将members.Name拉入具有自动完成功能的页面表单中。它不起作用。我不认为我甚至关闭来解决问题。有人可以帮忙吗?
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
var players = [ "Addabbo, Eric", "Adeyemon, Murie", "Agok, Peter Panthe", "Ahmed, Jamshed", "Allen, Daniel", "Amato, David Petty"]
<script>$(function() {$( ".autocomplete-2" ).autocomplete({delay: 0, source: window.players, minLength: 2, autoFocus: true});});</script>
var members =
[
{ "Name": "Ahmed, Jamshed", "cccrEXP": "2018.10.10" },
{ "Name": "Attaya, James", "cccrEXP": "2019.1.12" },
]
<script>
$( function() {
$( ".autocomplete-2" ).autocomplete({
minLength: 0,
source: members,
focus: function( event, ui ) {
$( ".autocomplete-2" ).val( ui.item.label );
return false;
},
return false;
}
})
} );
</script>
答案 0 :(得分:2)
来源:
定义要使用的数据,必须指定。
数组:数组可用于本地数据。 有两种支持的格式:
字符串数组:[&#34; Choice1&#34;,&#34; Choice2&#34; ]
具有标签和值属性的对象数组:[{label:&#34; Choice1&#34;,value:&#34; value1&#34; },...] label属性显示在建议菜单中。当用户选择项目时,该值将插入到input元素中。 如果只指定了一个属性,则它将用于两者,例如if 您只提供值属性,该值也将用作 标签
问题是您的对象没有label
或value
属性。如果可以,请更改对象的格式以使用这些属性。如果你不能这样做,你可以在循环中添加所需的属性,如下所示:
var members = [{
"Name": "Ahmed, Jamshed",
"cccrEXP": "2018.10.10"
},
{
"Name": "Attaya, James",
"cccrEXP": "2019.1.12"
},
]
$.each(members, function(i, member){
member.value = member.label = member.Name; // assuming you want to use .Name for both
});
// now you can pass `members` to the autocomplete method