因此,我正在使用jquery ui自动完成,其中显示的列表通过WebSockets获取。在输入字段(.keyup())上的每个按键上都会调用获取列表的函数。问题在于,一旦我输入一个字符并获取并显示相应的列表,下一次击键将在前一列表中的输入字段中搜索搜索参数,而不是搜索到的新字符。要获得新选项,我需要按退格键。例如,如果我在输入中输入“S”,则取出并显示与“S”对应的结果。如果我进一步输入“h”,使搜索词“sh”,那么与“sh”对应的列表被提取,但自动完成搜索在先前列表内搜索“sh”。简单地说,列表不会立即刷新。我怎样才能让列表立即刷新?预先感谢您的帮助。Jquery UI自动完成列表不刷新
UPDATE:所以这里有一个位代码: 这是检测击键和搜索发起
$('#pick_up_location').keyup(function(e) {
var param = $("#pick_up_location").val();
var userType = "1";
search(param, userType,"CBPickSearchAction", "", 0);
这是部分地方将显示在自动完成收到了效果:
function onMessage(data) {
try
{
var obj = $.parseJSON(data);
$("#pick_up_location").autocomplete({
source: obj,
minLength: 0,
delay: 0,
autoFocus: true,
search : function() {
},
//open : function(){$(this).removeClass('working'); $(".ui-autocomplete").width($(this).width());},
focus: function(event, ui) {
event.preventDefault();
return false;
},
open : function(event, ui){
$('#pick_up_location').autocomplete("widget").width();
.data("ui-autocomplete")._renderItem = function(ul, item) {
return $("<li></li>")
.data("item.autocomplete", item)
.append("<a>" + item.label + "</a>")
.appendTo(ul);
};
$("#pick_up_location").autocomplete('enable');
$("#pick_up_location").keydown();
} catch(err)
{
//console.log(err.message);
}
我认为这会有帮助,如果你包括你的代码。 – flitig
我更新了我的帖子,代码为 – user1869109
当代码不完整时(有几个缺失大括号和括号)并且没有正确缩进,很难看到任何潜在的问题。你能修复你的代码示例吗?或者也许创建一个[jsfiddle](http://jsfiddle.net/)? – flitig