Javascript jQuery自动完成结果框未显示转换为“标签”的JSON流&`价值观`

Javascript jQuery自动完成结果框未显示转换为“标签”的JSON流&`价值观`,javascript,jquery,json,autocomplete,Javascript,Jquery,Json,Autocomplete,我让jqueryautocomplete处理在适当位置显示的autocomplete搜索结果框。这是针对服务器端搜索支持,使用以下客户端js: $("#someSearchTermInputBox").autocomplete( { minLength: 2, source: "/searchThatReturnsStringListOfResults" }); 在这种情况下,服务器会将以下信息(通过Chrome调试器)发送回客户端: 相应的输入文本框为: <input

我让jqueryautocomplete处理在适当位置显示的autocomplete搜索结果框。这是针对服务器端搜索支持,使用以下客户端js:

$("#someSearchTermInputBox").autocomplete(
{
    minLength: 2,
    source: "/searchThatReturnsStringListOfResults"
});
在这种情况下,服务器会将以下信息(通过Chrome调试器)发送回客户端:

相应的输入文本框为:

<input id="someSearchTermInputBox" name="someSearchTermInputBox"  placeholder="Search for people, events and places" type="search"
我的标题如下(与以前的工作版本相同):


现在,我的autocomplete框没有显示(它不是空的——它根本没有显示(我可以在调试器和服务器上看到Ajax与服务器的交互)。我在Chrome中执行此操作,因此我启动了调试器,并且看到了从服务器正确返回的JSON。我需要什么HTML/CSS魔法来确保我的搜索结果显示出来

我在哪里可以找到jQuery网站上的文档(jQuery自动完成主网站——文档没有提到标签或值,当然也没有提到要操作的正确div元素)


顺便说一句,在
map
调用中将元组返回到
response
中的正确方法是,分隔符是逗号还是分号?Chrome给了我一个错误
未捕获的语法错误:意外标记:
,只有当我将元组中的分隔符更改为分号时,它才消失。

哇。我对JS不可思议的语法感到敬畏。无论如何,关键问题是
return
语句
{..}
括号的使用。对于像我这样的JS noob来说,为了掌握JS语法背后的逻辑以及在
return
语句中使用K&R风格的括号(我讨厌这个,因为我是一个使用Allman括号的人)

不管怎么说,最终让它工作的代码是

$(document).ready (function ()
{
    $("someSearchTermInputBox").autocomplete(
    {
    minLength: 2,
    source: function (request, response)
    {
    $.ajax(
    {
        url: "/search",
        data: {term: request.term},
        dataType: "json",
        success: function (jsonDataReceivedFromServer)
        {
        //alert (JSON.stringify (jsonDataReceivedFromServer));
        // console.log (jsonDataReceivedFromServer);
        response ($.map(jsonDataReceivedFromServer, function (item)
            {
            console.log (item.firstname);
                            // NOTE: BRACKET START IN THE SAME LINE AS RETURN IN 
                            //       THE FOLLOWING LINE
            return {
                id: item.firstname, value: item.lastname };
            }));
        }
      });
     },
   });
});
无论如何,对于使用Allman缩进的人,我建议使用以下语法,这是Allman缩进友好的:

var someTuple = 
  {
      value: item.firstname,
      id:    item.lastname
  };
return someTuple;
一个特别的呼喊,以SO的职位和。关于这件事和策划意见的更好的帖子


我希望这能帮助一些人,因为我希望更多的人会遇到这个问题。

哇。我对JS不可思议的语法感到敬畏。无论如何,关键问题是
return
语句
{..}
括号的使用。对于像我这样的JS noob来说,为了掌握JS语法背后的逻辑以及在
return
语句中使用K&R风格的括号(我讨厌这个,因为我是一个使用Allman括号的人)

不管怎么说,最终让它工作的代码是

$(document).ready (function ()
{
    $("someSearchTermInputBox").autocomplete(
    {
    minLength: 2,
    source: function (request, response)
    {
    $.ajax(
    {
        url: "/search",
        data: {term: request.term},
        dataType: "json",
        success: function (jsonDataReceivedFromServer)
        {
        //alert (JSON.stringify (jsonDataReceivedFromServer));
        // console.log (jsonDataReceivedFromServer);
        response ($.map(jsonDataReceivedFromServer, function (item)
            {
            console.log (item.firstname);
                            // NOTE: BRACKET START IN THE SAME LINE AS RETURN IN 
                            //       THE FOLLOWING LINE
            return {
                id: item.firstname, value: item.lastname };
            }));
        }
      });
     },
   });
});
无论如何,对于使用Allman缩进的人,我建议使用以下语法,这是Allman缩进友好的:

var someTuple = 
  {
      value: item.firstname,
      id:    item.lastname
  };
return someTuple;
一个特别的呼喊,以SO的职位和。关于这件事和策划意见的更好的帖子


我希望这能帮助一些人,因为我希望更多的人会遇到这个问题。

哇。我对JS不可思议的语法感到敬畏。无论如何,关键问题是
return
语句
{..}
括号的使用。对于像我这样的JS noob来说,为了掌握JS语法背后的逻辑以及在
return
语句中使用K&R风格的括号(我讨厌这个,因为我是一个使用Allman括号的人)

不管怎么说,最终让它工作的代码是

$(document).ready (function ()
{
    $("someSearchTermInputBox").autocomplete(
    {
    minLength: 2,
    source: function (request, response)
    {
    $.ajax(
    {
        url: "/search",
        data: {term: request.term},
        dataType: "json",
        success: function (jsonDataReceivedFromServer)
        {
        //alert (JSON.stringify (jsonDataReceivedFromServer));
        // console.log (jsonDataReceivedFromServer);
        response ($.map(jsonDataReceivedFromServer, function (item)
            {
            console.log (item.firstname);
                            // NOTE: BRACKET START IN THE SAME LINE AS RETURN IN 
                            //       THE FOLLOWING LINE
            return {
                id: item.firstname, value: item.lastname };
            }));
        }
      });
     },
   });
});
无论如何,对于使用Allman缩进的人,我建议使用以下语法,这是Allman缩进友好的:

var someTuple = 
  {
      value: item.firstname,
      id:    item.lastname
  };
return someTuple;
一个特别的呼喊,以SO的职位和。关于这件事和策划意见的更好的帖子


我希望这能帮助一些人,因为我希望更多的人会遇到这个问题。

哇。我对JS不可思议的语法感到敬畏。无论如何,关键问题是
return
语句
{..}
括号的使用。对于像我这样的JS noob来说,为了掌握JS语法背后的逻辑以及在
return
语句中使用K&R风格的括号(我讨厌这个,因为我是一个使用Allman括号的人)

不管怎么说,最终让它工作的代码是

$(document).ready (function ()
{
    $("someSearchTermInputBox").autocomplete(
    {
    minLength: 2,
    source: function (request, response)
    {
    $.ajax(
    {
        url: "/search",
        data: {term: request.term},
        dataType: "json",
        success: function (jsonDataReceivedFromServer)
        {
        //alert (JSON.stringify (jsonDataReceivedFromServer));
        // console.log (jsonDataReceivedFromServer);
        response ($.map(jsonDataReceivedFromServer, function (item)
            {
            console.log (item.firstname);
                            // NOTE: BRACKET START IN THE SAME LINE AS RETURN IN 
                            //       THE FOLLOWING LINE
            return {
                id: item.firstname, value: item.lastname };
            }));
        }
      });
     },
   });
});
无论如何,对于使用Allman缩进的人,我建议使用以下语法,这是Allman缩进友好的:

var someTuple = 
  {
      value: item.firstname,
      id:    item.lastname
  };
return someTuple;
一个特别的呼喊,以SO的职位和。关于这件事和策划意见的更好的帖子


我希望这能对其他人有所帮助,因为我希望更多的人会遇到这个问题。

注意:我在这两个问题之间更改了URL,URL不应对解决方案产生任何影响。minLength顺序、函数名前后的空格、参数名之间的空格等都无关紧要。注意:我在两者之间更改了URL,URL不应对解决方案产生任何影响。minLength顺序、函数名前后的空格、参数名之间的空格等都无关紧要。注意:我在两者之间更改了URL,URL不应对解决方案产生任何影响。minLength顺序、函数名前后的空格、参数名之间的空格等都无关紧要。注意:我在两者之间更改了URL,URL不应对解决方案产生任何影响。minLength顺序、函数名前后的空格、参数名之间的空格等都无关紧要。