我试图建立一个自动完成搜索。因此,我使用了jquery UI和这一小段代码:
$(function() {
$("#search").autocomplete({
source: function( request, response ) {
$.ajax(
{
url: 'autocomplete.php',
dataType: "json",
data:
{
term: request.term,
},
success: function (data)
{
response(data);
},
error: function (err) {
console.log("AJAX error in request: " + JSON.stringify(err, null, 2));
}
});
},
minLength: 2,
select: function(event, ui) {
var url = ui.item.id;
if(url != '#') {
location.href = '/blog/' + url;
}
},
html: true,
open: function(event, ui) {
alert("open");
$(".ui-autocomplete").css("z-index", 1000);
}
});
});
文件自动完成.php返回 json 编码的数据。
我的问题是,对于每个有效的响应和结果,我都会收到"错误:语法错误,无法识别的表达式:"错误,并且我的结果未显示在列表中。这个错误是什么意思?
多谢!
尝试使用
$(document).ready(function () {
/*here comes your code*/
});
此外,在您的成功函数中,尝试将其更改为
success: function (data)
{
alert(data.d);
},
因为您返回的是 d,而不是数据。d 表示数据对象的属性。
您没有提供所有信息来识别问题,但您应该致电
console.log(data);
在 success
函数开始时,查看控制台中的响应。您必须在生成请求响应的 PHP 或作为 response
传递的函数中使用了错误的语法 <a/>
而不是</a>
。