2012-09-17 84 views
0

我一直在努力讓jQuery UI自動完成工作,使用遠程源。每次請求都會得到正確的結果(使用Chromes Inspector),但由於某些原因,下拉框不會顯示。下面是搜索領域:jQuery UI自動完成:不顯示下拉列表

<form action={'/content/search'|ezurl} class="search-form"> 
    <fieldset> 
     <input type="text" id="Search" name="Search" class="text" /> 
     <input type="submit" name="SearchButton" class="submit" value="search" /> 
    </fieldset> 
</form> 

和JavaScript:

$(function() { 

$("#Search").autocomplete({ 
     source: function(request, response) { 
      $.ajax({ 
       url: "/content/search", 
       dataType: "get", 
       data: { 
        maxRows: 12, 
        query: request.term, 
        filter: 'author' 
       } 
      }); 
     }, 
     type:"json", 
     select: function(event, ui) 
     { 
      window.location = ui.item.url; 
     } 
    }); 
}); 

將返回:

[{"html":"<li><a href=\/Author\/Per_Asmund\/(language)\/nor-NO>Asmund, Per<\/a><\/li>","url":"\/Forfattere\/Per_Asmund\/(language)\/nor-NO","id":"210"}, 
{"html":"<li><a href=\/Forfattere\/Per_AErlend\/(language)\/nor-NO>Erlend, Per<\/a><\/li>","url":"\/Forfattere\/Per_AErlend\/(language)\/nor-NO","id":"238"}] 

我可能只是失去了一些東西,但我不能爲生命我知道了。任何幫助深表感謝!

回答

2

你錯過了response呼叫您的source PARAM

 $.ajax({ 
      url: "/content/search", 
      dataType: "JSON", // edit: fixed ;) 
      data: { 
       maxRows: 12, 
       query: request.term, 
       filter: 'author' 
      }, 
      success: function(data) { response(data); } // add this line 
     }); 

但也許有些more simple usage應該是在這種情況下更好。

+0

不敢相信我錯過了。已添加,但仍未顯示下拉菜單。任何其他想法? – frigg

+0

想通了。 dataType:「json」做了詭計。謝謝。 – frigg

相關問題