【发布时间】:2015-12-25 10:58:54
【问题描述】:
我有一个数组,其中包含一些具有相同“id”属性的对象,如下所示:
var regions = [
{'id': 1, 'value': 'Ankara'},
{'id': 2, 'value': 'İstanbul'},
{'id': 2, 'value': 'Istanbul'}
]
如果有重复,我会尝试仅显示某个 ID 的第一个对象(在这种情况下,我想显示“İstanbul”而不是“Istanbul”)。 我尝试在源属性中使用一个函数,但我失败了,我不确定我需要在哪里执行此操作......这是一个 sn-p :
var regions = [
{'id': 1, 'value': 'Ankara'},
{'id': 2, 'value': 'İstanbul'},
{'id': 2, 'value': 'Istanbul'}
]
$('#myInput').autocomplete({
source: regions
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.11.4/jquery-ui.min.js"></script>
<input type="text" placeholder="type here ..." id="myInput">
任何帮助将不胜感激。谢谢。
【问题讨论】:
-
在将对象数组作为
source参数提供之前,您需要对其进行重复数据删除。详情见这个问题:stackoverflow.com/questions/2218999/… -
您不能只过滤
regions以排除重复项吗? -
由于特殊字符,我需要保留数组中的所有项目。如果我从数组中删除“istanbul”并且用户类型“ist”,则不会显示“İstanbul”。因此,后端开发人员向我发送了每个区域的“原始”版本。
-
在这种情况下,您可能需要修改自动完成的来源(或完全使用不同的插件),因为我认为它不支持每个 id 的多个值。
-
也许这就是你要找的东西:jqueryui.com/autocomplete/#folding 查看示例
标签: javascript jquery jquery-ui autocomplete jquery-ui-autocomplete