2013-02-05 55 views
0

以下是我的jQuery代码:jQuery的自动完成功能问题

$("#destinations").autocomplete({ 
    source: function (request, response) { 
     $.getJSON("http://localhost/contactApi.do?&callback=?", 
      { 'contactMobile': request.term, maxRows: 12, style: "full" }, 
      function(data) { 
       if(data.ApiResponse){ 
        var x = $.map(data.ApiResponse, function(v, i){ 
         console.log(v) 
         return { 
          label: v.Mobile + ' - ' + v.Name, 
          v: v.Name 
         } 
        }); 
        response(x); 
       } 
      } 
     );   
    } 
}) 

我可以通过下面的JSON响应为输入一个手机号码,像123的结果产生萤火观察...

{"ApiResponse":{"Status":1000,"TransactionId":"","Data":{"Contacts":[{"Email":"","Mobile":"123456","Name":"john"}]},"Operation":"api","ResponseTime":"2013-02-05T16:08:33+11:00","StatusText":"Success","RequestTime":"2013-02-05T16:08:33+11:00","Object":"Contact"}} 

这表明jQuery部分可能正常工作,但在我的输入区域下方不会显示下拉菜单以显示过滤结果。我的脚本或JSON格式有问题吗?

感谢,

回答

0

从jQueryUI的自动填充API Autocomplete

标签属性显示在建议菜单。当用户选择一个项目时,将值 插入到输入元素中。如果 只指定了一个属性,则它将用于这两个属性,例如,如果您的 仅提供值属性,则该值也将用作 标签。

应该是这样的。

return 
    { label: v.Mobile + ' - ' + v.Name,, 
      value: v.Name 
    } 
+0

我觉得单个'return'会让下面的代码不执行。由于自动完成需要以数组的形式存在,因此需要使用 – pktangyue

+0

。请阅读API。它会工作。 –

+0

http://stackoverflow.com/questions/9750129/is-this-an-expected-behavior-with-return-keyword-on-javascript请看看这个。 – pktangyue