2013-12-08 2 views
1

я следующее:Jquery: выбор значения в динамически генерируемом списке выбора опций

  1. Функция, которая, на основании пользовательского ввода, заполняет <select> элемента с набором <option> элементов. Соответствующий код является:

    data = $.parseJSON(result); 
    $.each(data, function (i, item) 
    { 
        $('div#step1 select#d-ward').append('<option value="' + item.id + '">' + item.ward + '</option>'); 
    }); 
    
  2. функция, которая основана на другой вход, устанавливает заданное <option> в <select> быть отображены текущее значение. Соответствующий код:

    data = $.parseJSON(result); 
    $('div#step1 select#d-ward').val(data.dis_ward); 
    

Номер 2 выше, является проблемой, так как она не изменяет текущее отображаемое число. Я подозреваю, что это связано с тем, что динамически генерируется <option>, так как тот же код работает, если вместо него создается серверная сторона.

Что нужно добавить, чтобы убедиться, что <select> полностью обновлен, прежде чем запускать код выше?

+0

проверить значение 'data.dis_ward' путем добавления' console.log (data.dis_ward) 'перед установкой значения –

+0

было сделано ранее, данные существует и имеет ожидаемое значение , – csvan

+0

Вы можете проверить порядок выполнения, выполняется ли набор до добавления дополнительных параметров ... также жесткий код значения и снова проверить –

ответ

0

Из разъяснений получили от комментариев/чатов получается, что загрузчик и инкубационная функция асинхронные, но они называются последовательно так, когда сеттер вызывается параметры могут не дозвонились ....

Вам нужны чтобы вызывающий вызывающий вызывал после того, как загрузчик завершил загрузку значений параметров ... Для этого вы можете использовать механизм обратного вызова.

Подробнее: in this answer

Смежные вопросы