2011-06-01 48 views
0

我有一个jQuery自动填充小部件的奇怪问题。 首先我有一个'选择'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); 
}); 

所以我不明白。这是一个错误吗?

编辑:我不能告诉你'F5刷新'与jsfiddle的东西。如果你想测试它,你必须复制代码并在导航器中使用它。

+0

请问这个问题有帮助:http://stackoverflow.com/q/1479233/497356? – 2011-06-01 21:29:10

+0

显然我不这么认为:( – 2011-06-01 23:14:30

回答

0

我没有测试过你的代码,但从它的外观来看,这是一个计时问题。我在Javascript中遇到过这样的情况。为了解决这个问题,请尝试使用一个0毫秒的setTimeout:

尝试相反的

$('#search-questionnaire').autocomplete('option', 'source', data); 

setTimeout(function() { 
    $('#search-questionnaire').autocomplete('option', 'source', data); 
}, 0) 

让我懂得这正好。

相关问题