我的jquery自动完成插件会保留初始搜索的结果,并且不会将其替换为新搜索的结果。 我的ASP代码如下:
<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 :(得分:0)
我找到了问题的原因。 在成功撤回Ajax查询的结果后,我尝试使用以下代码将它们分配给自动完成:
$("[class$='controls_icr_searchbox']").autocomplete({
奇怪的是,这在第一个实例上起作用,但在任何后续更改中都失败了。 我的代码现在可以正常使用以下代码代替上述代码:
$(".controls_icr_searchbox").autocomplete({