33

我正在使用剑道 UI 控件。我想在 jquery 中获取下拉列表的选定文本。我使用了这种语法:

 $("#ddl").data("kendoDropDownList").text();

我能够在除 IE 之外的所有浏览器中获取文本。我不知道为什么这在 IE 中不起作用,请帮助我。还有其他方法可以获取选定的 Text 吗?

4

8 回答 8

47

为了获取 DropDownList 的文本值,使用如下命令:

$("#ddl").data("kendoDropDownList").text();
于 2014-02-06T12:07:31.743 回答
5

对于 DropDownLists,您包括一个 DisplayText 和一个 Value。DisplayText 是用户选择的内容,而 Value 是后端使用的内容。

示例:您有一个存储联系人信息的数据库,您的 DisplayText 将是联系人姓名,而值将是数据库中该特定行的主键 ID 字段。

ID - 1 姓名 - 约翰·史密斯

$("#ddl").data("kendoDropDownList").dataItem().DisplayText = John Smith
$("#ddl").data("kendoDropDownList").dataItem().Value = 1

这就是我想要做的,我希望这也是你正在寻找的答案。

于 2014-08-20T14:23:07.937 回答
4

在选择事件中从下拉列表中选择一个值时,所选值如下所示,

@(Html.Kendo().DropDownList()
              .Name("booksDropDown")
              .HtmlAttributes(new { style = "width:37%" })
              .DataTextField("BookName")
              .DataValueField("BookId")
              .Events(x => x.Select("onSelectBookValue"))
              .DataSource(datasource => datasource.Read(action => action.Action("ReadBookDropDow", "PlanningBook").Type(HttpVerbs.Get)))
              .OptionLabel("Select"))

Javascript函数如下,

  function onSelectBookValue(e) {    

                var dataItem = this.dataItem(e.item.index());
                var bookId = dataItem.BookId; // value of the dropdown
                var bookName = dataItem.BookName; // text of the dropdown
               //other user code
}

我相信这会对某人有所帮助。

谢谢

于 2015-07-16T11:40:55.740 回答
2

这是一个小提琴是任何人都想尝试

<select id="testDrpDown">
    <option value="1">One</option>
    <option value="2">Two</option>
    <option value="3">Three</option>
    <option value="1231231">and so on</option>
</select>
</br>
</br>
<button onclick="MethOne()">Method one</button>
</br>
</br>
<button onclick="Methtwo()">Method one</button>

<script>
$("#testDrpDown").kendoDropDownList();

//var can be used anuwhere in js
var dropdown = $("#testDrpDown").data("kendoDropDownList");

function MethOne() {
    alert($("#testDrpDown").data("kendoDropDownList").text());
}

function Methtwo() {
    alert(dropdown.text());
}
</script>
于 2014-07-21T14:41:21.200 回答
1

你可以这样尝试

 var ddl= $("#ddl").data("kendoDropDownList").dataItem($("#ddl").data("kendoDropDownList").select()).FieldName;
//FieldName is the text field of DataSource ---  .DataTextField("FieldName")
于 2014-02-06T11:33:14.957 回答
1

这是另一种方式:

e.item[0].textContent

完整示例:

$("#ancillaryTestDDL").kendoDropDownList({
    dataSource: that.viewModel.ancillaryTestDS,
    dataTextField: "DisplayValue",
    dataValueField: "Id",
    select: function (e) {
        console.log(e.item);
        console.log(e.item[0].textContent);
    }
});
于 2015-12-21T21:10:33.340 回答
0

我同意 d.popov,你的问题似乎是答案。将您的语句放在警报功能中会弹出所选文本:

警报($("#ddl").data("kendoDropDownList").text());

在 IE11 中测试。从未提及与该问题相关的实际 IE 版本...

于 2015-11-11T07:10:03.400 回答
0

$("#YourDrpDownId").data("kendoDropDownList").value();

于 2021-07-05T15:46:33.470 回答