Как я могу узнать, какой раскрывающийся список изменился? - PullRequest
0 голосов
/ 05 февраля 2020

У меня есть четыре выпадающих списка в моем виде бритвы, и затем у всех них есть метод onchange (), и с его помощью я вызываю метод submit из своей формы, но я хочу узнать в контроллере, какой из этих четырех выпадающих пользователей фактически изменился , в поле зрения:

@Html.DropDownList("drpOriginalStation", (IEnumerable<SelectListItem>)ViewBag.originalStationsList, new { @class = "dropdown-stations", @id = "drpOriginalStation", onChange = "onSelectedIndexChanged()" })

и еще одно подобное выпадающее меню, а затем у меня есть javascript:

        function onSelectedIndexChanged(val) {
        document.getElementById('search').submit(val);
    }

наконец, в контроллере мне нужно распознать, какое раскрывающееся меню изменилось?

Ответы [ 2 ]

1 голос
/ 06 февраля 2020

Один из способов сделать это - добавить скрытый элемент внутри формы:

<input type="hidden" id="changedDropdown" name="changedDropdown" value="NONE">

Затем в onSelectedIndexChanged вы можете сделать это:

function onSelectedIndexChanged(e) {
  document.getElementById('changedDropdown').value = e.target.id; // changedDropdown now equals "drpOriginalStation"
  document.getElementById('search').submit();
}

Попробуйте изменить определение элемента управления. чтобы передать это в:

@Html.DropDownList("drpOriginalStation", (IEnumerable<SelectListItem>)ViewBag.originalStationsList, new { @class = "dropdown-stations", @id = "drpOriginalStation", onChange = "onSelectedIndexChanged(this)" })
0 голосов
/ 10 февраля 2020

в качестве ответа, поскольку Джек отвечает, просто измените этот код скрипта, как показано ниже, и тогда он будет работать.

    function onSelectedIndexChanged(selectObject )
    {
         document.getElementById('changedDropdown').value = selectObject.id;
         document.getElementById('search').submit();
    }
...