Дождаться выполнение запроса.
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, время: 19:27. |