0

我希望有人可以幫忙,
我很難讓jQueryUI的自動完成與$ .ajax({})在asp.net應用程序中的調用一起工作。
我可以讓它做出ajax調用,獲得服務響應和位置列表。
但仍然沒有顯示自動完成列表,當我按下向下箭頭鍵時,位置列表呈現在頁面上。
從web方法獲取位置列表後應立即呈現/顯示。這怎麼可能?如何在autocomplete()方法上顯示Jquery UI自動填充小部件?

我使用的是自動完成的jQuery從網站:http://jqueryui.com/demos/autocomplete/

示例代碼

function GetCitiesLikeList(objcity) {  
var cities = ""; 
     $.ajax({ 
      type: "POST", 
      url: http://localhost/testweb/location.asmx/Getlocations, 
      data: "{ City : '" + objcity + "'}", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (msg) { 
       if (msg.d != null && msg.d != "") { 
        cities = ""; 
        cities = msg.d; 
        $("#citilist").autocomplete({ 
         source: cities 
        }); 
       } 
       else 
        $("#citilist").attr("autocomplete", "off") 
      }, 
      error: function (xhr, ajaxOptions, thrownError) { return false; } 
     }); 
} 

回答

1

我找到了另一種方式來觸發jQuery UI的自動完成功能,而無需鍵入入禁區:

$('#field').autocomplete({ 
    source: '/path/to/data', 
    minLength: 0 
}); 
$('#button').click(function() { 
    $('#field').autocomplete('search', '') 
}); 

發送「搜索」 ARG觸發搜索功能。第二個參數是發送到/ path/to/data處的數據處理程序的「term」。

+1

你也做得很好..謝謝。 – 2012-02-13 09:56:17

0

jQuery的自動完成功能被觸發,只有當一個鍵被擊中,這就是與你發生。這是它設計的功能。如果你想定製。你應該寫自己的邏輯。

1

要顯示清單,請致電$('#citilist').trigger("keydown"); 這使得它認爲您輸入的是citilist輸入,並且會觸發ajax帖子。

+0

Thanks @ariel它會觸發事件並獲取結果,但當按下keydown時我遇到了其他問題,然後在自動完成列表中獲取先前的查詢結果。例如:我嘗試搜索'los ang',然後獲取所有與'los ang *'相關的位置,然後刪除所有值並嘗試寫入'mexi',然後顯示我以前的結果。如何刪除或刷新先前的結果從它.. – 2011-04-29 08:00:33

+0

我想你需要在觸發器之前調用GetCitiesLikeList()。 – ariel 2011-04-29 08:05:28

+0

@arial我打電話給上面的web方法,然後調用down鍵觸發器... – 2011-04-29 08:16:15

相關問題