我的脚本中有这段代码:
$(function() {
$( "#products" ).autocomplete({
source: "<?php echo $this->baseUrl ?>/loyalty/autocomplete",
minLength: 2,
focus: function( event, ui ) {
$( "#products" ).val( ui.item.label );
return false;
},
select: function( event, ui ) {
$("#sel_products").html($("#sel_products").html()+"<tr><td>"+ui.item.value+"</td><td>"+ui.item.id+"</td></tr>");
return false;
}
}).data( "autocomplete" )._renderItem = function( ul, item ) {
return $( "<li></li>" )
.data( "item.autocomplete", item )
.append( item.value)
.appendTo( ul );
};
});
自动完成获取的ajax结果是这样的:
[{label:"Label1",value:"Value1",id:"1"},{label:"Label2",value:"Value2",id:"2"}]
问题是我的自动填充列表没有创建。当我开始输入字母时没有任何反应,除了返回ajax。顺便说一句,当我使用常规的非自定义数据时,我得到了列表。
这里有什么问题?
答案 0 :(得分:1)
如果您使用的是firebug并使用该架构作为源,您可以在Net上看到自动完成发送术语数据(使用get方法),因此您必须在/ loyalty / autocomplete类中处理该术语。我对这个问题所做的是,我没有处理那个术语,但我只是将结果从提供我想要的数据(控制器类)的类中抛出到视图类。因此,在视图类中,我只是将该数据称为源。