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

Я использую элементы управления Kendo UI. Я хочу получить выделенный текст выпадающего списка в jquery. Я использовал этот синтаксис:

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

Я могу получить текст во всех браузерах, кроме IE. Я не знаю, почему это не работает в IE, пожалуйста, помогите мне. Есть ли другой способ получить выбранный текст?


person Ram Singh    schedule 06.02.2014    source источник
comment
Этот вопрос нуждается в некоторой модерации. Из-за некоторых правок (я полагаю) действительно нет никакой разницы от того, что автор заявил НЕ РАБОТАЕТ, и каковы ответы (с голосами). @Ram Sigh - какая версия IE не работает?   -  person d.popov    schedule 01.04.2015


Ответы (8)


Чтобы получить текстовое значение команды DropDownList, используйте команду, как показано ниже:

$("#ddl").data("kendoDropDownList").text();
person Dinesh Haraveer    schedule 06.02.2014
comment
Не могли бы вы объяснить, в чем разница между кодом вашего ответа и кодом моего вопроса????????????? - person Ram Singh; 22.07.2014
comment
Доступ к существующему DropDownList через jQuery.data(). Вызов jQuery.data( element ) извлекает все связанные значения элемента в виде объекта JavaScript. Сам jQuery использует этот метод для хранения данных для внутреннего использования. Например, обработчики событий, поэтому не думайте, что они содержат только данные, сохраненные вашим собственным кодом. - person Dinesh Haraveer; 22.07.2014

Для DropDownLists вы включаете DisplayText и значение. DisplayText — это то, что выбирает пользователь, а Value — это то, что используется в бэкэнде.

Пример: у вас есть база данных, в которой хранится контактная информация, и ваш DisplayText будет именем контакта, а значение будет полем идентификатора первичного ключа для этой конкретной строки в базе данных.

ID - 1 Имя - Джон Смит

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

Это то, что я хотел сделать, я надеюсь, что это ответ, который вы также искали.

person Zach    schedule 20.08.2014

Когда значение выбирается из раскрывающегося списка в событии выбора, выбранное значение доступно следующим образом:

@(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
}

Я верю, что это поможет кому-то.

Спасибо

person dush88c    schedule 16.07.2015
comment
var bookId повторяется, второй должен называться bookName или подобным. В остальном хороший ответ, спасибо. - person ditto1977; 03.10.2015

Вот скрипта, кто-нибудь хочет попробовать

<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>
person karthickj25    schedule 21.07.2014
comment
Не могли бы вы объяснить, в чем разница между кодом вашего ответа и кодом моего вопроса????????????? - person Ram Singh; 22.07.2014
comment
$(#ddl).данные(kendoDropDownList).текст(); будет получать текст напрямую, однако, если ddl не инициализирован, и вы можете получить ошибку (т.е. выпадающий список будет неопределенным), поэтому, чтобы избежать этого, я получу ссылку в var и использую var в JS вместе с undefnied Проверьте. если вы столкнулись с проблемой, это может быть из-за этого .. также, пожалуйста, опубликуйте свой полный код - person karthickj25; 22.07.2014

Вы можете попробовать так

 var ddl= $("#ddl").data("kendoDropDownList").dataItem($("#ddl").data("kendoDropDownList").select()).FieldName;
//FieldName is the text field of DataSource ---  .DataTextField("FieldName")
person MustafaP    schedule 06.02.2014

Вот еще один способ:

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);
    }
});
person user1477388    schedule 21.12.2015

Я согласен с d.popov, ваш вопрос кажется ответом. размещение вашего заявления в функции оповещения вызывает всплывающий выделенный текст:

Оповещение($("#ddl").data("kendoDropDownList").text());

Протестировано в IE11. Фактическая версия IE, связанная с проблемой, никогда не упоминалась...

person IUnknown    schedule 11.11.2015

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

person Shakti Srivastav    schedule 05.07.2021