Автоматическое обновление выпадающего списка после события изменения - PullRequest
1 голос
/ 11 июля 2011

У меня есть раскрывающийся список, который заполняется с помощью вызова jquery ajax при изменении другого раскрывающегося списка, при событии change () код, который делает это:

    //dropdowns switching        
        $("#eventActivity").bind("change", (function()
        {                     
            $.ajax({
                type:"POST",
                url:"<?php echo site_url('events/get_locations_for_activity'); ?>" + "/" + $(this).val(),
                data: "activityID=" + $(this).val(),
                cache: false,
                dataType: "json",
                success:function(data)
                {
                    //empty the ddl
                    $(".locationDDL").children("select:first").children("option").remove();
                    //go through the json data returned and edit the drop down
                    for( var i = 0 ; i < data.length ; i++)
                    {
                        $(".locationDDL").children("select:first").append("<option value=\"" + data[i].locationID + "\">" + data[i].name + "</option>");
                    }

                }
            });
        })).change(); //force change to run once so it works on load for the first dropdown option

Теперь эти раскрывающиеся спискидиалоговое окно, которое появляется при нажатии кнопки «Изменить».Я передаю данные в диалог редактирования, чтобы я мог предварительно заполнить поля в диалоге.Все работает нормально, за исключением установки правильных значений в раскрывающихся списках.
Код, который я использую для этого, находится здесь:

$("#eventActivity").val(event.activityID);
$("#eventActivity").change(); //force the change handler to update the dropdowns
$("#eventLocation").val(event.locationID); 

Как видите, я установил значение первого раскрывающегося списка,вызвать событие изменения, которое должно загрузить новые значения во второй раскрывающийся список, затем установить значение второго раскрывающегося списка.Проблема в том, что третья строка кода (настройка #eventLocation) не работает, вместо этого в раскрывающемся списке остается выбранное значение по умолчанию, первое значение в списке раскрывающегося списка.

Любые предложения приветствуются!

1 Ответ

2 голосов
/ 11 июля 2011

Вы должны установить значение последнего выпадающего списка в успешном обратном вызове вашего ajax-запроса.Если последнее значение параметра зависит от того, завершен ли запрос ajax, оно должно быть в обратном вызове.Вероятно, ваш запрос не был завершен к тому времени, когда произошла последняя установка значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...