2013-02-05 471 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