第一次发帖,所以我为任何错误道歉,如果之前已经回答过这个错误。
我可能会遗漏一些显而易见的事情,但此功能并未过滤变量列表。当我进入" 0"它没有显示任何内容,但是当我输入" j" (以及其他一些字符,例如" e"," c"" b")该函数显示数组中的所有内容。
<head>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<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>
<script>
$(function()
{
var data = [{"Part_no":"0001","Part_description":"Part 1"},{"Part_no":"0002","Part_description":"Part 2"}]
$( "#project" ).autocomplete({
minLength: 1,
source: data,
select: function( event, ui )
{
$( "#project" ).val( ui.item.Part_no );
$( "#project-description" ).html( ui.item.Part_description );
return false;
}
})
.autocomplete( "instance" )._renderItem = function( ul, item )
{
return $( "<li>" )
.append( "<div>" + item.Part_no + "<br>" + item.Part_description + "</div>" )
.appendTo( ul );
};
});
</script>
</head>
<body>
<input id="project">
</body>
感谢您的关注。
答案 0 :(得分:2)
我认为传递的数据格式不正确。根据此文档http://api.jqueryui.com/autocomplete/#option-source。您需要使用label和value属性传递对象的字符串或数组的数组。因此,您必须决定要在“零件号”或“零件描述”上搜索的内容。如果您只想在部件号上自动完成,请将其作为数组传递
var data = ["001","002","003""];
为详细描述创建另一个数组
var desc = ["Desc 1 " ,"Desc 2" , "Desc 3"];
因此,一旦用户选择了数据,您将获得数据的位置或可以映射到desc数组的值,以获得您想要使用的更多细节。
答案 1 :(得分:0)
这里的问题是这个过程正在寻找一个&#34;标签&#34;数组键。
更改&#34; Part_no&#34;的所有实例到&#34;标签&#34;解决了这个问题。我在PHP中使用array_map()做了这个,但如果有人知道如何在JQuery中执行此操作,我非常想知道。