自动完成无法正确显示数据

时间:2013-06-26 19:11:04

标签: jquery ajax jquery-autocomplete

我有一个自动完成的代码如下

   $("#city").autocomplete({

    source: function( request, response ) {
        term=request.term;
        $.ajax({
            url: "/autocomplete/city/"+term,
            dataType: "html",
            async:false,
            cache:true,
            success: function (data) {
                alert(data);
                response(data);
            }

        });                 
    }
});

警报数据可生成正确的数据。在形式 新德里 加尔各答 等等。但响应(数据)显示数据为 d Ë 升 H 一世 不同行中的所有字符

任何人都可以解释错误或正确的做法吗?

1 个答案:

答案 0 :(得分:1)

我假设你使用旧版本的jquery(< = 1.7)?如果是的话,你会以这种方式得到它,你需要将数组传递给response。较新版本的jquery将抛出错误,因为它使用for..in进行迭代,我猜旧版本使用for循环进行迭代,就像你已经作为数组传递一样,你的字符串被拆分为字符,因此行为。

试试这个:

success: function( data ) {

    response( [data]);
}

但是如果你的数据是由逗号分隔的多个值的字符串,你可以这样做:

success: function( data ) {

    response(data.split(','));
}

请查看 Documentation ,其中说明了如何正确使用此功能。并举例 Fiddle 来演示。