您使用自动完成必须有对象了label
属性的源阵列,value
财产,或两者(如在文档中overview page概述)。
var src = <?php echo json_encode($array); ?>;
$.each(src, function() {
this.value = this.name;
});
$(document).ready(function() {
$('#invite-connections').autocomplete({
minLength: 0,
source: src,
focus: function(event, ui) {
$('#invite-connections').val(ui.item.name);
return false;
},
select : function(event, ui) {
$('#invite-connections').val(ui.item.name);
$('#invite-connections-user-id').val(ui.item.id);
$('#invite-connections-submit').show();
return false;
}
})
.data("autocomplete")._renderItem = function(ul, item) {
return $("<li type=\"none\"></li>")
.data("item.autocomplete", item)
.append("<a><img src=\"" + item.pic + "\" /> " + item.name + "</a>")
.appendTo(ul);
}
});
举例::http://jsfiddle.net/ASwRj/
该“T”和“e”分别工作的原因是因为每个用户可以通过添加这些性质中的一种变换的源阵列到一个小部件支持在你的数组的字符串表示物体看起来像:
[object Object]
没有任何匹配的属性,自动完成控件试图匹配你键入到T的字符串表示什么他反对说,这就是为什么你在输入“s”的那一刻就停止看到结果的原因。
有什么错误? – 2012-08-08 18:02:33
@RicardoLohmann没有显示错误,只是停止提供建议。试图填写其余的字母,但没有弹出 – 2012-08-08 18:04:32