【问题标题】:Error: Syntax error, unrecognized expression: <a/> Jquery UI错误:语法错误,无法识别的表达式:<a/> Jquery UI
【发布时间】:2015-01-13 10:19:13
【问题描述】:

我尝试构建自动完成搜索。因此我使用了 jquery ui 和这个小 sn-p 代码:

$(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);
        }
    });
 
});

文件 autocomplete.php 返回 json 编码数据。

我的问题是,对于每个有效的响应和结果,我都会收到“错误:语法错误,无法识别的表达式:”错误,并且我的结果未显示在列表中。这个错误是什么意思?

非常感谢!

【问题讨论】:

  • 尝试在控制台中查看,它显示错误行。
  • 返回的数据是否符合 UI 文档中的预期数据格式?
  • 改为。

标签: php jquery ajax user-interface autocomplete


【解决方案1】:

尝试使用

$(document).ready(function () { 
   /*here comes your code*/
});

另外,在你的成功函数中,尝试将其更改为

success: function (data)
            {
                alert(data.d);
            },

因为您返回的是 d,而不是 数据。 d 表示 data 对象的属性。

【讨论】:

    【解决方案2】:

    您没有提供所有信息来确定问题,但您应该致电

    console.log(data);
    

    在您的 success 函数的开头并查看控制台中的响应。在生成请求响应的 PHP 或作为 response 传递的函数中,您一定使用了错误的语法 &lt;a/&gt; 而不是 &lt;/a&gt;

    【讨论】:

      猜你喜欢
      • 2016-03-21
      • 1970-01-01
      • 2012-08-28
      • 2013-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多