MVC3: Получить выпадающее меню выбранное значение / текст через Javascript

На MVC3 с раскрывающимся списком, определенным как

@Html.dropDownList(m=>m.model, new SelectList(m.myList, "value", "text"))

Как я могу получить выбранное значение и / или текст с помощью JavaScript?

Я попытался передать имя:

  @Html.dropDownList(m=>m.model, new SelectList(m.myList, "value", "text"), new {name="name")

и чтение имени из JavaScript: document.getElementByName("имя")

но это не работает.

1 ответ

Решение

Если вы используете jQuery (что весьма вероятно для проекта MVC):

// lambda to get the ID of your dropdown. This runs on the server,
// and injects the ID into a client-side variable.
var id = '@Html.IdFor( o => o.model )';

// get the dropdown by ID and wrap in a jQuery object for easy manipulation
var dropdown = $("#" + id);

// get the value
var value = dropdown.val();

Конечно, вы можете объединить это в одну строку, если хотите.

Если вы не используете jQuery, см. /questions/25003231/poluchit-vyibrannoe-znachenie-v-raskryivayuschemsya-spiske-s-pomoschyu-javascript/25003254#25003254.

var id = '@Html.IdFor( o => o.model )';
var dropdown = document.getElementById( id );
var value = dropdown.options[dropdown.selectedIndex].value;

Ручной идентификатор:

@Html.dropDownList(m=>m.model, new SelectList(m.myList, "value", "text"), new {id = "ddl1"})

var value = $("#ddl1").val();
Другие вопросы по тегам