【发布时间】:2015-07-20 21:35:11
【问题描述】:
这就是我所拥有的:
searchTimeoutID;
InitQuickSearch = function() {
$( 'input#quick-search' ).autocomplete({
source: []
});
$('input#quick-search', document).on('keyup', function(e) {
switch(e.which) {
default: // live search
window.clearTimeout(searchTimeoutID); // remove timer
var str = $(this).val(); // search string
if (str !== '') { // do the search
searchTimeoutID = window.setTimeout(LiveSearch, 100);
}
break;
}
});
};
LiveSearch = function() {
var str = $('input#quick-search').val();
if(str !== '') {
$.ajax({
type: 'POST',
url: '/livesearch',
data: { query: str },
cache: false,
success: function(data){
var results = data.split(',');
alert(results); // displays correct results here
$( 'input#quick-search' ).autocomplete( 'option', { source: results });
},
error: function(response) {
printError(response);
}
});
}
return false;
};
当我使用 alert(results) 输出结果变量时,值看起来正确。
但是,当我尝试更新自动完成中的值时,它不会显示正确的值。另外,我必须按向下键才能显示菜单。
$('input#quick-search').autocomplete('option', { source: results });
我做错了什么?
【问题讨论】:
标签: javascript jquery jquery-ui jquery-autocomplete