0
我正在用一個看似簡單的javascript執行查找來填充select元素。我將當前值存儲在一個變量中,一旦腳本執行了查找並使用新列表填充選擇,然後查找先前選定值的索引並選擇它。這一切都可以正常工作,但是一旦函數完成,選定的索引就會被重新設置爲0。函數結束後selectedindex重置爲0
function findCleaningFrequency(){
var url = "${cleaningFrequencyLookup}".replace('SUBME', dojo.byId('ams.member').value);
var listbox = dojo.byId('ams.cleaningFrequency');
var selectedoption = listbox.selectedIndex;
var selectedtext = listbox[selectedoption].text;
dojo.xhrGet({
url : decode(url),
handleAs : 'json',
node: dojo.byId('ams.cleaningFrequency'),
load :
function(responseObject, ioArgs){
fillSelect(responseObject, ioArgs.args.node.id);
}
});
for (var i = 0; i < listbox.options.length; ++i) {
if (listbox.options[i].text === selectedtext) listbox.options[i].selected = true;
}
}
我看不出有任何理由,我可以通過它在調試步驟,看它正常工作(並選擇其中正確返回新列表正確的選項),直到它完成(它會在最後通過for循環,按預期正確選擇項目),然後下拉菜單重新設置爲0!出於興趣,我們使用的是舊版本的dojo(1.0.2),就此而言,我們無法升級以防萬一。
好東西尼克!感謝您的幫助,將循環移入回調工作非常完美。 – user3589090