2011-01-24 6 views
2

mon plugin jquery autocomplete conserve les résultats d'une recherche initiale et ne les remplace pas par les résultats d'une nouvelle recherche. Mon code ASP est comme suit:jQuery .autosuggest conserve les résultats

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

Alors que le jQuery qui fait l'appel Ajax ressemble à ceci:

$(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); 
        } 
       }); 
      } 
      });  
    }); 

L'appel ajax renvoie les bons résultats à chaque fois, mais ils ne semblent pas être lié à l'événement .autocomplete.

Répondre

0

J'ai trouvé la cause de mon problème. Après avoir tiré avec succès de nouveau les résultats de l'Ajax Interrogation j'ai essayé de les affecter au autocomplete en utilisant le code suivant:

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

Bizarrement cela a fonctionné sur la première instance, mais a échoué sur toute modification ultérieure. Mon code fonctionne maintenant correctement en utilisant le code suivant à la place de ce qui précède:

$(".controls_icr_searchbox").autocomplete({