Есть ли событие, которое срабатывает на модальной форме, готово?Мне нужно установить индекс dropdownlist там - PullRequest
0 голосов
/ 22 января 2019

В модальной форме начальной загрузки мне просто нужно установить данный элемент в уже заполненном DropDownList, используя, например:

$("#MyDropDown").prop('selectedIndex', 1);

Я попытался использовать событие готовности документа:

   <script type="text/javascript">
    $(document).ready(function () {
        $("#MyDropDown").prop('selectedIndex', 1);
    });
    </script>

Но это не работает, и я предполагаю, что это потому, что мне кажется, что я говорю о внешнем виде, а не о модале.Какое событие можно использовать для готовности к модалу?

Вот как я создаю DropDownList (он также заполняется с помощью JQuery)

<select id="MyDropDown" name="ddlMyDropDown" class="form-control"></select>

РЕДАКТИРОВАТЬ: Это заполняется с помощью Ajax:

       function PopulateMyDropDown() {
        var procemessage = "<option value='0'>Seleccionar...</option>";
        $("#MyDropDown").html(procemessage).show();

        var data = JSON.stringify({
            idPedidoDisprofarma: idPedido
        });

        return $.ajax({
            url: "/RecepcionDisprofarma/PedidosDisproNoRecibidos",
            data: data,
            cache: false,
            contentType: 'application/json; charset=utf-8',
            dataType: 'json',
            type: 'POST',
            success: function (data) {
                var markup = "";

                markup += "<option value='0'>Seleccionar..</option>";;

                for (var x = 0; x < data.length; x++) {
                    markup += "<option value=" + data[x].Value + ">" + data[x].Text + "</option>";
                }
                $("#MyDropDown").html(markup).show();
            },
            error: function (reponse) {
                alert("error : " + reponse);
            }
        });
    }

Ответы [ 2 ]

0 голосов
/ 22 января 2019

если вы использовали jquery ajax, вы должны сделать это

$(document).on("click", 'button',
  function() {
    $(".modal-body").load(YOURURL, function() {
      $("#MyDropDown").prop('selectedIndex', 1);
    });
    $("#myModal").modal();
  });
0 голосов
/ 22 января 2019

Заполняется ли раскрывающийся список на сервере или после вызова ajax?

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

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

Вы можете сослаться на этот пример: https://stackoverflow.com/a/16746700/2835914

Вы также можете попробовать:

        success: function (data) {
            var markup = "";

            markup += "<option value='0'>Seleccionar..</option>";;

            for (var x = 0; x < data.length; x++) {
                markup += "<option value='" + data[x].Value + "' " + x === 0 ? "selected" : "" + ">" + data[x].Text + "</option>";
            }
            $("#MyDropDown").html(markup).show();
        },
...