我有一个jquery自动完成小部件的奇怪问题。 首先,我有一个'select'HTML元素,显示所有项目。 我还有一个输入元素,我可以在其中搜索与所选项目相对应的问卷。
所以我有这段代码:http://jsfiddle.net/AMkKX/1/
一切都很好。但我的问题是当我刷新页面时(使用F5,而不是Ctrl + F5):始终选择以前选择的选择框,所以我想更改自动完成小部件的来源(我展示的代码应该这样做)
但除非我在$('#search-questionnaire').autocomplete('option', 'source', data);
之前发出提醒,否则来源不会改变:
$('#search-project').change(function () {
var data;
var val = $(this).val();
alert('val : ' + val);
if (val != '')
data = questionnairesData[val];
else
data = allQuestionnairesData;
$('#search-questionnaire').autocomplete('option', 'source', data);
});
所以我不明白。这是一个错误吗?
编辑:我无法通过jsfiddle向您展示'F5刷新'。如果要测试它,则必须复制代码并在导航器中使用它。
答案 0 :(得分:0)
我还没有测试过您的代码,但从外观来看,这是一个时间问题。我在Javascript中遇到过这种情况几次。要解决此问题,请尝试使用0ms的setTimeout:
而不是
$('#search-questionnaire').autocomplete('option', 'source', data);
尝试:
setTimeout(function() {
$('#search-questionnaire').autocomplete('option', 'source', data);
}, 0)
让我知道这是怎么回事。