select 요소를 채우기 위해 룩업을 수행하는 겉으로보기에는 간단한 자바 스크립트 조각으로 고민하고 있습니다. 변수에 현재 값을 저장하고 스크립트에서 조회를 수행하고 select에 새 목록을 채운 다음 이전에 선택한 값의 색인을 찾아 선택합니다. 함수가 완료되면 selectedindex가 다시 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