如何在json对象上执行自动完成

时间:2014-07-01 06:15:35

标签: jquery json

我有一个json对象如下:

var subaccounts = [
{
    "name": "account 12200002 inc",
    "id": "3e55979f46304334b1de3b17fe0942d7",
    "billingContactInfo": {
      "country": "USA",
      "email": "pooja687236.wagh@neustar.biz",
      "firstName": "poojas",
      "lastName": "wagh",
       "address1": "1234 asdf",
        "address2": "",
         "city": "mountain view",
         "phone": "",
         "postalCode": "95035",
         "stateOrProvince": "CA",
         "fax": ""
   }

} ]

对于自动完成,我尝试了这个:

selectedSubAccount = _.each(subaccounts, function(account) { 
                            return account.name
                        }); // to get the account name in the input field
$( "#autocomplete" ).autocomplete({
                        source: selectedSubAccount[0].name

                        }); 

下面是html:

<input id="autocomplete" placeholder = "search">

但是当我输入输入字段时,它会给我这个错误:

GET http://home.stagingwpm.neustar.biz/account%2012200002%20inc?term=a 404 (Not Found) 

我不确定这是否是执行自动完成的正确方法: 谁有任何想法?拜托,谢谢!

EDIT :::::

我的selectedSubAccount给了我以下o / p。

enter image description here

所以我的“name”和“id”字段位于“billingContactInfo”之下。我怎样才能使它成为一个只包含我的名字的数组source: selectedSubAccount:?

由于

1 个答案:

答案 0 :(得分:1)

根据Autocomplete Widget API Documentation

  

字符串:使用字符串时,自动填充插件需要该字符串指向将返回JSON数据的URL资源。它可以位于同一主机上或在另一个(必须提供JSONP)。自动完成插件不会过滤结果,而是使用术语字段添加查询字符串,服务器端脚本应使用该字段来过滤结果。例如,如果source选项设置为"http://example.com"而用户键入foo,则会向http://example.com?term=foo发出GET请求。数据本身的格式与上述本地数据的格式相同。

在您的示例中,source是字符串类型,因此它希望它是一个返回JSON的URL。但是,您的变量selectedSubAccount应该是仅包含名称的数组(您在_.each - 循环中指定它),因此应该是有效的来源。因此,请尝试使用以下源代码:

source: selectedSubAccount