我正在尝试将JSON对象与jquery ui自动完成结合使用。没有太多的成功。我看了看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>
旧的JS数组(工作正常)
var players = [ "Addabbo, Eric", "Adeyemon, Murie", "Agok, Peter Panthe", "Ahmed, Jamshed", "Allen, Daniel", "Amato, David Petty"]
旧JS
<script>$(function() {$( ".autocomplete-2" ).autocomplete({delay: 0, source: window.players, minLength: 2, autoFocus: true});});</script>
新的JSON对象(不起作用)
var members =
[
{ "Name": "Ahmed, Jamshed", "cccrEXP": "2018.10.10" },
{ "Name": "Attaya, James", "cccrEXP": "2019.1.12" },
]
新的JS
<script>
$( function() {
$( ".autocomplete-2" ).autocomplete({
minLength: 0,
source: members,
focus: function( event, ui ) {
$( ".autocomplete-2" ).val( ui.item.label );
return false;
},
return false;
}
})
} );
</script>
发布于 2018-06-08 10:07:12
the Autocomplete Widget状态的文档:
源:定义要使用的数据,必须指定。
数组:数组可用于本地数据。支持的格式有两种:
字符串数组:"Choice1","Choice2“
具有标签和值属性的对象数组:{ label:"Choice1",value:"value1“},...label属性将显示在“建议”菜单中。当用户选择一个项目时,该值将被插入到输入元素中。如果只指定了一个属性,则它将用于两个属性,例如,如果仅提供值属性,则该值也将用作标签。
问题是您的对象没有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
https://stackoverflow.com/questions/50751240
复制相似问题