是否有准备在Modal表单上触发的事件?我需要在那里设置dropdownlist索引

时间:2019-01-21 23:28:48

标签: jquery asp.net-mvc model-view-controller bootstrap-modal

在模式引导程序表单中,我只需要在已填充的DropDownList中设置给定项,例如:

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

我尝试使用文档就绪事件:

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

但是它不起作用,我认为这是因为那以为我在说外部视图,而不是模态。我可以使用什么事件来准备Modal?

这就是我创建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 :(得分:2)

下拉列表是填充在服务器上还是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();
        },

答案 1 :(得分:0)

如果您使用了jQuery ajax,则应该这样做

$(document).on("click", 'button',
  function() {
    $(".modal-body").load(YOURURL, function() {
      $("#MyDropDown").prop('selectedIndex', 1);
    });
    $("#myModal").modal();
  });