2011-04-06 60 views
1

我已經搜索了很多次,並找到與我的代碼結構完美匹配的示例。然而我沒有從我的ajax中得到結果顯示在輸入框中。MVC 3 jQuery UI自動完成不顯示結果

我從POST獲得的結果已經被螢火蟲所淹沒,一切看起來都很棒。

這裏是JavaScript即時通訊使用。

<script type="text/javascript" language="javascript"> 
$(function() { 

    $("input.FamousPerson-List").autocomplete({ 
     source: function (request, response) { 
      $.ajax({ 
       url: "/FamousPeople/FPPAutoComplete", 
       type: "POST", 
       dataType: "json", 
       data: { 
        searchText: request.term, 
        maxResults: 12 
       }, 
       success: function (data) { 
        response($.map(data, function (item) { 
         return { 
          value: item.DisplayName 
         } 
        })) 
       } 
      }); 
     } 
    }); 

}); 

這裏是我使用的是網絡上的實際代碼的鏈接。 AutoCompleteTesting鍵入下面任何一個框中的任何字母來調用它。

謝謝。

+0

我嘗試在框中輸入文本,並且您的成功功能未被調用。自由市場調查:我想打賭哪些名人會變胖。我想在流行歌星上交易橘皮組織的未來。 – RSG 2011-04-06 21:59:51

+0

好,謝謝,我做錯了,成功功能沒有開始呢?並感謝您的建議。該項目是開源的,我會尋找想法。 – 2011-04-06 22:14:44

回答

2

如果仔細觀察發送的請求,您會注意到正在添加回調參數。奇怪,對吧?由於您正在製作本地AJAX帖子,而不是跨域(JSONP)文章。

我注意到你的項目包含jQuery Validate。根據this answer來處理類似問題的問題(執行JSONP請求而不是正常的JSON請求,即使你問了一個),這是jQuery驗證中的一個已知問題。

通過其他答案判斷,您可以更改您的jQuery版本,也可以使用補丁版本的jQuery驗證(找到here)。

+0

令人驚歎。刪除部分視圖引入的衝突jQuery驗證版本可以修復此問題。謝謝一堆。上面的同一鏈接現在顯示了一個工作解決方案 – 2011-04-07 02:53:11