2015-04-23 3 views
-1

У меня есть Kendo DropdDownList, который, кажется, работает нормально, он берет список элементов из ViewData и отлично отображает их.Html.Kendo(). DropDownList() ".text()" не работает должным образом

.BindTo((System.Collections.IEnumerable)ViewData["modulos"]) 
.DataTextField("Codmodulo") 

Тогда я называю контроллер (через машинопись) и попытаться передать ему текст выбранного элемента, что-то вроде этого:

Codmodulo: $("#funcionesDropDownList").text() 

Но по какой-то причине, что всегда возвращает пустую строку («»), а

Codmodulo: $("#funcionesDropDownList").val() 

отлично работает и дает мне желаемое значение. Вчера это работало хорошо. Любые идеи, что может быть неправильным?

Английский не мой первый язык, не стесняйтесь спрашивать о более подробной информации.

ответ

1

$("#funcionesDropDownList") - это скрытый входной элемент HTML в раскрывающемся списке, и он удерживает его значение.

Метод text() возвращает текст, помещенный внутри элемента DOM, на котором вы его вызываете. Поэтому, если вы вызываете его для элемента без внутреннего текста:

<input id="funcionesDropDownList" value="abc" data-role="dropdownlist" 
style="display: none;" /> 

вы получите пустой текст.

Метод retutns элемента атрибута значения элемента (в данном случае abc), поэтому он возвращает правильное значение.

Чтобы получить значение из раскрывающегося списка вниз, используя KendoUI API, вы можете использовать этот код:

var listValue = $("#funcionesDropDownList").data("kendoDropDownList").value(); 

Вы можете прочитать о о API на KendoUI site.

+0

Это работает, спасибо –

0

Согласно jQuery specification

.text()

Получить объединенные текстовое содержимое каждого элемента в наборе соответствующих элементов

и .val()

Получить текущее значение первого элемента в наборе

DropdDownList generate input элемент html и элементы ввода не содержат. Текст хранится в значении. Если вы хотите получить текст из других (неформатных) тегов, вы можете использовать функцию text().

+0

Это то, что я пытался, но не работает для меня. Я видел, что $ ("# funcionesDropDownList"). Data ("kendoDropDownList"). Text(); работает, но я уверен, что только $ ("# funcionesDropDownList"). text(); вчера отлично работал –

+0

Итак, теперь ваша функция val() дает вам пустую строку? Ваш вопрос непонятен. Дайте мне html-код, созданный этой Razor. – suvroc

+0

val() всегда работал нормально, $ ("# funcionesDropDownList"). Data ("kendoDropDownList").текст(); это то, что я должен был сделать, @ jarosław-kończak объяснил это действительно хорошо –

Смежные вопросы