Как получить идентификатор выбранного значения из выпадающего списка с помощью jQuery - PullRequest
1 голос
/ 10 октября 2019

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

  <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");
                            } }
                    });
                }
            });

Это раскрывающийся список и 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, так как он работает с циклом foreach, поэтому в раскрывающемся списке он не принимает значения модели, поэтому мне пришлось сделать это следующим образом. Мне удобно с DropDownListFor. Это мой первый раз, когда я сделал с этим синтаксисом

DropDown Ss

Ответы [ 3 ]

1 голос
/ 10 октября 2019
@Html.DropDownList("OrderStatusList", new SelectList((IEnumerable<SelectListItem>)ViewData["OrderList"], "Text", "Value"), "Select", new { @class = "form-control", id = "orderStatusList" }

Пожалуйста, измените это на

@Html.DropDownList("OrderStatusList", new SelectList((IEnumerable<SelectListItem>)ViewData["OrderList"], "Value", "Text"), "Select", new { @class = "form-control", id = "orderStatusList" }

Во-вторых, в контроллере внесите следующие изменения, ваше значение должно указывать на statusId вместо значения, а текстовое свойство должно указывать на s.StatusName:

IEnumerable<SelectListItem> statusList = db.OrderStatus.Select(s => new SelectListItem { Value = (s.StatusName).ToString() }).ToList();

Пожалуйста, свяжите текст и значение, здесь вы только привязываете текст к значению свойства.

0 голосов
/ 10 октября 2019

попробуйте

$('#orderStatusList').val();

или

$("#orderStatusList option:selected").val()
0 голосов
/ 10 октября 2019

попробуйте решение ниже

<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");
                            } }
                    });
                }
            });

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