2011-06-01 43 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) 

讓我懂得這正好。

相關問題