首页 > 解决方案 > 如何使用jQuery从下拉列表中获取所选值的ID

问题描述

我想从下拉列表中获取一个 id,因为它在 jquery 中给出了 null。其次,我想问一下下拉菜单的语法,我不知道它是如何工作的。

  <div class="modal-body">
                        <div class="form-horizontal">
                            <div class="form-group">
                                <label class="col-lg-2"><b>OrderStatus</b></label>
                                <div class="col-lg-10">
                                    @Html.DropDownList("OrderStatusList", new SelectList((IEnumerable<SelectListItem>)ViewData["OrderList"], "Text", "Value"), "Select", new { @class = "form-control", id = "orderStatusList" })
                                    @Html.ValidationMessage("OrderStatusList", "", new { @class = "text-danger" })

                                </div>
                            </div>
                        </div>
                    </div>


 $("#orderStatusList").change(function () {
            debugger;
            var orderStatusId = $("#orderStatusList").find('option:selected').val();
                if (orderStatusId != "") {
                    $.ajax({
                        type: 'GET',
                        url: '@Url.Action("Edit", "OrderList")' + '?OrderStatusId=' + orderStatusId,
                        success: function (data) {
                            if (data.success == true) {

                            }
                            else
                            {

                                alert("Inavlid Id");
                            } }
                    });
                }
            });

这是我获取所选项目ID的下拉菜单和jquery。在这里,我不明白“文本”和“价值”的含义。

 OrderViewModel model = new OrderViewModel();
        IEnumerable<SelectListItem> statusList = db.OrderStatus.Select(s => new SelectListItem { Value = (s.StatusName).ToString() }).ToList();
        ViewData["OrderList"] = statusList;
        //model.OrderStatusList = statusList;

这是我的控制器,在这里我在订单视图模型中创建了订单状态的 Ienumerable 列表。我想将列表存储在模型中,但我不能,因为我的视图是 IEnumerable 类型,因为它正在使用 foreach 循环,所以在下拉列表中它没有采用模型值,所以我不得不这样做。我对 DropDownListFor 很满意。这是我第一次使用这种语法

下拉菜单

标签: jqueryhtmlasp.net-mvc

解决方案


尝试以下解决方案

<div class="modal-body">
         <div class="form-horizontal">
         <div class="form-group">
             <label class="col-lg-2"><b>OrderStatus</b></label>
              <div class="col-lg-10">
                  @Html.DropDownList("OrderStatusList", new SelectList((IEnumerable<SelectListItem>)ViewData["OrderList"], "Text", "Value"), "Select", new { @class = "form-control", id = "orderStatusList" })
                                    @Html.ValidationMessage("OrderStatusList", "", new { @class = "text-danger" })

                    </div>
               </div>
              </div>
   </div>

 $("#orderStatusList").change(function () {

            var orderStatusId = $(this).val();
                if (orderStatusId != "") {
                    $.ajax({
                        type: 'GET',
                        url: '@Url.Action("Edit", "OrderList")' + '?OrderStatusId=' + orderStatusId,
                        success: function (data) {
                            if (data.success == true) {

                            }
                            else
                            {

                                alert("Inavlid Id");
                            } }
                    });
                }
            });


推荐阅读