2013-05-20 86 views
0

該操作返回一個JSonResult並且內容正確。我錯過了自動完成代碼中的某些內容?自動完成中未出現結果

HTML:

<input type="text" class="span12" id="mytextbox" /> 

的JavaScript:

<script> 
    $(document).ready(function() { 
     $("#mytextbox").autocomplete({ 
      minLength: 2, 
      source: function(request,response) { 
       $.ajax({ 
        url: "MyController/MyAction", 
        type: "POST", 
        dataType: "json", 
        data: { term: request.term }, 
        success: function (data) { 
         response($.map(data, function (item) { 
          return { firstname: item.FirstName, lastname: item.LastName, code: item.Code }; 
         })) 
        } 
       }) 
      }, 
      messages: { 
       noResults: "", results: "" 
      } 
     }) 
     .data("ui-autocomplete")._renderItem = function (ul, item) { 
      return $("<li>") 
       .append("<a>" + item.firstname + "<br>" + item.lastname + "</a>") 
       .appendTo(ul); 
     }; 
    }) 
    </script> 

回答

0

下一個代碼工作,其中availableTags更換你的Ajax。

<script> 
    $(document).ready(function() { 
     var availableTags = [ 
     "ActionScript", 
     "AppleScript", 
     "Asp", 
     "BASIC"]; 

     $("#mytextbox").autocomplete({ 
      minLength: 2, 
      source: availableTags, 
      messages: { 
       noResults: "", results: "" 
      } 
     }).data("ui-autocomplete").renderItem = function (ul, item) { 
     return $("<li>") 
      .append("<a>" + item.firstname + "<br>" + item.lastname + "</a>") 
      .appendTo(ul); 
    }; 
    }); 
</script> 

這可能會有所幫助:http://api.jquery.com/jQuery.data/#jQuery-data-element

更新:

的問題是這一行:

.data("ui-autocomplete").renderItem = function (ul, item) { 

你有

.data("ui-autocomplete").**_**renderItem = function (ul, item) { 
+0

好吧,你沒有數據複製完全相同的代碼... –

+0

請再試一次,我更新了答案。它爲我工作100%..如果它不是你的情況,你可能想要審查ajax數據。 –

+0

'renderItem'之前的下劃線對我來說似乎很好。這是他們在[documentation](http://jqueryui.com/autocomplete/#custom-data)第66行 – SirDerpington