jQuery自动完成自定义数据

时间:2011-05-30 09:55:33

标签: javascript jquery autocomplete

我的脚本中有这段代码:

$(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。顺便说一句,当我使用常规的非自定义数据时,我得到了列表

这里有什么问题?

1 个答案:

答案 0 :(得分:1)

如果您使用的是firebug并使用该架构作为源,您可以在Net上看到自动完成发送术语数据(使用get方法),因此您必须在/ loyalty / autocomplete类中处理该术语。我对这个问题所做的是,我没有处理那个术语,但我只是将结果从提供我想要的数据(控制器类)的类中抛出到视图类。因此,在视图类中,我只是将该数据称为源。