2012-05-28 209 views
1

我發現了這個jQuery,我想將它集成到我的項目中。我的問題是如何應用該「源」?jQuery自動完成集成

因爲在我的輸入我收到所有從數據庫中,我不能在HTML或jQuery之前什麼都不寫!

其實我使用wicket組件來自動完成,但該組件是越野車,因爲如果我調整瀏覽器的大小,列表不會在輸入下方對齊,因此我試圖找到更好的方法。

如果任何人都可以HEP我:)

var $element = $('.my-autocomplete'); 
var $testinput = $element.find('.my-autocomplete-input'); 

$testinput.autocomplete({ 
    minLength: 0, 
    autoFocus: true, 
    source: ["c++", "java", "php", "coldfusion", "javascript", "asp", "ruby"] 
    }); 

小提琴例如:http://jsfiddle.net/CSypd/36/

謝謝!

+0

似乎工作,那裏有什麼問題? – Joseph

回答

2

客戶端

$("#element _id").autocomplete({ 
       source: function (request, response) { 
        $.ajax({ 
         url: '@Url.Action("GetEmployeeDepartmentStuff")', 
         //generates into a url. eg http://www.site.com/MyPage/GetEmployeeDepartmentStuff?filter=.... 
         dataType: "json", 
         data: { 
          filter: request.term 
         }, 
         success: function (data) { 
          response($.map(eval(data), function (item) { 
           return { 
            label: item.em_name, 
            dp_Name: item.dp_Name 
           } 
          })); 
         } 
        }) 
       }, 
       maxLength: 2, 
       select: function (event, ui) {     
        $("#Deparment").attr('value', ui.item.dp_Name); 
       } 
      }); 

服務器端

[HttpGet] 
    [CompressFilter] 
    public ActionResult GetEmployeeDepartmentStuff(string filter = "") 
    { 
     SomeRepository repo = new SomeRepository(); 
     return repo.GetEmployeeDepartmentStuff(filter); //returns a JSON result 
    } 

不知道你用什麼索緒爾爲您的服務器端代碼,但是你需要有一個Web方法/服務/暴露的東西接受參數「過濾器」(見上文),或其他任何你想發回....還不要忘記在你的標記中包含jQuery庫

+0

非常感謝:) – mcmwhfy

0

最簡單的想法是通過ajax調用獲取源數組。

+0

,我該怎麼做? – mcmwhfy