问题描述
|
我的脚本中包含以下代码:
$(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之外,什么都没有发生。顺便说一句,当我使用常规的非定制数据时,我得到了列表。
这可能是什么问题?
解决方法
如果您正在使用Firebug并将该架构用作源,则可以在网上看到自动填充功能(使用get方法)发送术语数据,因此您必须在/ loyalty / autocomplete类中处理该术语。我对该问题所做的事情是,我没有处理该术语,但是我只是将提供所需数据的类(控制器类)的结果扔给了视图类。因此,在视图类中,我只是将该数据称为源。