2011-01-24 33 views
2

我的jquery自動完成插件保留了初始搜索的結果,並且不會用新搜索的結果替換這些結果。 我的ASP代碼如下:jQuery .autosuggest保留結果

<body> 
<form id="form1" runat="server"> 
    <asp:TextBox ID="txtSearch" class="controls_icr_searchbox" runat="server" 
        style="width:200px;"/> 
</form> 
</body> 

雖然這使Ajax調用jQuery的是這樣的:

$(document).ready(function() {  
     $('.controls_icr_searchbox').keyup(function() { 
      if ($('.controls_icr_searchbox').val().length > 4) { 
       //Code to fetch 
       //var divToBeWorkedOn = '#AjaxPlaceHolder'; 
       var parameters = "{'query':'" + 
            $('.controls_icr_searchbox').val() + "'}"; 
       var url = 'AutoComplete.asmx/GetAddress'; 
       $.ajax({ 
        type: "POST", 
        url: url, 
        dataType: "json", 
        data: parameters, 
        contentType: "application/json; charset=utf-8", 
        success: function (data) { 
         var datafromServer = data.d.split(":"); 
         $("[class$='controls_icr_searchbox']").autocomplete({ 
          source: datafromServer 
         }); 
        }, 
        error: function (XMLHttpRequest, textStatus, errorThrown) { 
         alert(textStatus); 
        } 
       }); 
      } 
      });  
    }); 

Ajax調用返回每一次的結果很好,但他們似乎並沒有被綁定在.autocomplete事件上。

回答

0

我找到了我的問題的原因。 成功拉回的Ajax查詢的結果後,我試圖將它們分配給使用下面的代碼自動完成:

$("[class$='controls_icr_searchbox']").autocomplete({ 

奇怪的是這個工作的第一個實例,但沒有任何後續變化。 我的代碼現在可以正確使用以下代碼代替上述代碼:

$(".controls_icr_searchbox").autocomplete({