Дождаться выполнение запроса.
function chn(objct) { var di_nas_punkt_id = $(objct).val(); if (di_nas_punkt_id == '0') { $('#di_areas_id').html(''); $('#di_areas_id').attr('disabled', true); return(false); } $('#di_areas_id').attr('disabled', true); $('#di_areas_id').html('<option>загрузка...</option>'); var url = '<?php echo $_SERVER['REQUEST_URI'],'&from=areas'; ?>'; $.get( url, "nas_punkt_id=" + di_nas_punkt_id, function (result) { var options = '<option value="0"><?=_l_okrug_create_ar_select;?></option>'; $(result.areas).each(function() { options += '<option value="' + $(this).attr('id') + '">' + $(this).attr('title') + '</option>'; }); $('#di_areas_id').html(options); $('#di_areas_id').attr('disabled', false); }, "json" ); }; Данный скрипт делает мне набор опций, которые по аджаксу получаются из файла. После выполнения этого кода мне надо сделать выбранным определенный пункт меню. Делается так: загружаю список chn($('#di_nas_punkt_id')); И выбираю элемент $('#di_areas_id').val(<?=$sel_area;?>); Элемент не выбирается, так как на момент выполнения кода $('#di_areas_id').val(<?=$sel_area;?>);список почему-то еще пустой. Как мне дождаться выполнения кода и заполнения списка, и только потом продолжать работу JS? |
Можно делать синзронный AJAX запрос или проверять заполнен ли список.
|
Что за синхронный запрос?
Если делать проверкой заполнен ли список, то ее в цикле делать, как думаете? |
Не в цикле, а при помощи setTimeout или setInterval
|
Потом так и подумал. Поищу.
Не силен в js аж вообще. |
$('#di_areas_id').html(options); $('#di_areas_id').attr('disabled', false); // тут надо делать $('#di_areas_id').val(<?=$sel_area;?>); про синхронный запрос не слушай - херня это. |
Отлично. Все работает. С меня пиво :-)
|
Часовой пояс GMT +3, время: 09:54. |