Html.Kendo()。DropDownList()" .text()"不正常

时间:2015-04-23 08:02:26

标签: c# asp.net kendo-ui

我有一个Kendo DropdDownList似乎运行正常,它从ViewData获取项目列表并完美显示它们。

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

然后我调用控制器(通过TypeScript)并尝试向他传递所选项目的文本,如下所示:

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

但由于某种原因,它总是返回一个空字符串(""),而

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

工作正常,给我所需的价值。这昨天对我来说很好。什么想法可能是错的?

英语不是我的第一语言,请随时询问更多详情。

2 个答案:

答案 0 :(得分:1)

$("#funcionesDropDownList")是下拉列表中隐藏的输入HTML元素,它保留了它的值。

text()方法返回放置在您调用它的DOM元素内的文本。因此,如果您为没有内部文本的元素调用它,例如:

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

你会得到空文。

val()方法返回元素的value属性元素的值(在本例中为abc),因此它返回正确的值。

要使用KendoUI API获取下拉列表的值,您可以使用以下代码:

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

您可以在KendoUI site上了解有关API的信息。

答案 1 :(得分:0)

根据jQuery specification

.text()

  

获取匹配元素集中每个元素的组合文本内容

.val()

  

获取集合

中第一个元素的当前值

DropdDownList生成input个html元素,输入没有内容。文本存储在值中。 如果要从其他(非形式)标签获取文本,可以使用text()函数。