我有一个自动完成的代码如下
$("#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 一世 不同行中的所有字符
任何人都可以解释错误或正确的做法吗?
答案 0 :(得分:1)
我假设你使用旧版本的jquery(< = 1.7)?如果是的话,你会以这种方式得到它,你需要将数组传递给response
。较新版本的jquery将抛出错误,因为它使用for..in
进行迭代,我猜旧版本使用for循环进行迭代,就像你已经作为数组传递一样,你的字符串被拆分为字符,因此行为。
试试这个:
success: function( data ) {
response( [data]);
}
但是如果你的数据是由逗号分隔的多个值的字符串,你可以这样做:
success: function( data ) {
response(data.split(','));
}
请查看 Documentation ,其中说明了如何正确使用此功能。并举例 Fiddle 来演示。