如何在autocomplete()方法上显示Jquery UI自动完成小部件?
我希望有人能帮上忙,如何在autocomplete()方法上显示Jquery UI自动完成小部件?,jquery,autocomplete,jquery-autocomplete,jquery-ui-autocomplete,Jquery,Autocomplete,Jquery Autocomplete,Jquery Ui Autocomplete,我希望有人能帮上忙,我很难让jQueryUI的autocomplete在asp.net应用程序中使用$.ajax({})调用。我可以让它进行ajax调用,得到服务的响应和位置列表但是自动完成列表仍然没有显示,当我按下向下箭头键时,位置列表就会显示在页面上 从web方法中获取位置列表后,应立即呈现/显示它。怎么可能呢 我正在使用jquery站点的自动完成: 示例代码 function GetCitiesLikeList(objcity) { var cities = "";
我很难让jQueryUI的autocomplete在asp.net应用程序中使用$.ajax({})调用。
我可以让它进行ajax调用,得到服务的响应和位置列表
但是自动完成列表仍然没有显示,当我按下向下箭头键时,位置列表就会显示在页面上
从web方法中获取位置列表后,应立即呈现/显示它。怎么可能呢 我正在使用jquery站点的自动完成: 示例代码
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; }
});
}
jqueryautocomplete只有在按下键时才会触发,这就是发生在您身上的情况。这就是它设计的功能。如果你想定制的话。您应该编写自己的逻辑。要显示列表,只需调用
$('citilist')。触发器(“keydown”)代码>
这使它认为您正在输入citilist,并将触发ajax帖子。我找到了另一种方法来触发jQuery UI自动完成功能,而无需在框中键入:
$('#field').autocomplete({
source: '/path/to/data',
minLength: 0
});
$('#button').click(function() {
$('#field').autocomplete('search', '')
});
发送“搜索”参数将触发搜索功能。第二个参数是发送到/path/to/data的数据处理程序的“term”。谢谢@ariel,它将触发事件并获取结果,但当我按下keydown键时,我遇到了其他问题,然后在自动完成列表中获取以前的查询结果。例如:我尝试搜索“los ang”,然后它获取与“los ang*”相关的所有位置,然后我删除所有值并尝试写入“mexi”,然后它向我显示以前的结果。。如何从中删除或刷新以前的结果..我想你需要在触发之前调用GetCitiesLikeList()。我相信它是这样工作的->GetCitiesLikeList->trigger->success。所以当你触发时,列表还没有返回。所以你必须在success方法中触发。@ariel我调用了success方法。。like=>success:function(msg){if(msg.d!=null&&msg.d!=“”){cities=“;cities=msg.d;$(“#citilist”).autocomplete({source:cities});$(“#citilist”).trigger(“keydown”){else$(“{citilist”).attr(“autocomplete”,“off”)},你也做得很好。。谢谢