2011-01-24 64 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({