2015-09-10 2 views
0

Возможно, это легко, но я застрял.Kendo, kendoDropDownList, _selectedValue, всегда первый вариант

У меня есть функция, которая работает с kendoDropDownList, и я не могу получить значение selectedIndex. Игнорируя, что на самом деле делает функция, может кто-нибудь объяснить это?

function setDocTypeAssociates(event){ 

    var dropdownlist = $("#type_doma_ky").data("kendoDropDownList"); 
    console.log(dropdownlist); 
    console.log(dropdownlist._selectedValue); 
    console.log(dropdownlist.selectedIndex); 
    ... 

Результат этих трех console.log() s вы можете увидеть в прикрепленном screendump.

Почему правильные значения (65 и 4) в объекте, но некорректные (67 и 0), когда я выгружаю их отдельно?

Screendump

+0

http://stackoverflow.com/a/32476521/1849455 –

+0

Причина может быть в зависимости код , не могли бы вы воспроизвести то же самое в jsfiddle? и fyi никогда не используют _variable для развития, поскольку они считаются частными членами. –

+0

Если мы подозреваем зависимый код, я не мог бы установить это в jsFiddle. Было бы достаточно сложно создать изолированную версию в любом случае, что со всеми используемыми нами фреймами и кодом OO. Я предполагаю, что мой конкретный вопрос был более теоретическим. Как две последовательные свалки дают разные результаты для одной и той же переменной? Могу ли я, например, получить доступ к значениям во второй и третьей свалки неправильно? Может быть, более подходящий синтаксис я должен использовать? – Junglefish

ответ

0

Это действительно трудно сказать, почему вы получите эти результаты, я лично пытался воспроизвести их и не смог.

В любом случае самый лучший способ, чтобы получить ваши данные будут:

 var dropdownlist = $("#list").data("kendoDropDownList"); 
     console.log(dropdownlist); 
     console.log(dropdownlist.text()); 
     console.log(dropdownlist.value());  
     console.log(dropdownlist.selectedIndex); 

с текстом() и значение() функции.

В целом Telerik не рекомендует использовать поля, начинающиеся с подчеркивания, потому что они настроены для внутреннего использования и могут измениться. Например, в последней версии пользовательского интерфейса Kendo _selectedValue возвращает undefined.

Я создал рабочий пример для вашей справки.

http://dojo.telerik.com/eNUkU

+0

Hi Stefan Такая же проблема. Я не могу поместить экранный дамп в это диалоговое окно, но вот что я получаю: console.log (dropdownlist); \t текст = Нажмите Card \t значение = 65 \t SelectedIndex = 4 \t (то есть пятый элемент в переключателе.) Индивидуально доступ: \t console.log (dropdownlist.text()); = Статьи или вклады \t console.log (dropdownlist.value()); = 67 \t console.log (dropdownlist.selectedIndex); = 0 \t (т.е.первый элемент в selectBox) Как это может быть? :-( – Junglefish

+0

Привет, Стефан. Не могли бы вы взглянуть на ссылку додзе? Когда я запустил ее, я получил «http://kendo.cdn.telerik.com/2015.2.805/js/angular.min.js.map 404 (не найдено) "в консоли. – Junglefish

+0

привет Майкл, я действительно не знаю, почему вы получили этот результат. Мне нужно, чтобы ваш код попытался получить представление. Это не должно быть. Если это та, которую я опубликовал, в этой ссылке нет такой ссылки, если она еще одна, сообщите мне, какой из них. Наконец, я попытался дать вам представление о том, что именно является правильным способом получить выбранное значение. Надеюсь, это поможет. Позвольте мне теперь, если есть что-то еще, с чем я могу помочь. –

0

взгляд на эту скрипку: (https://jsfiddle.net/cr1v6cvh/1/)

Получить данных

<script> 

$("#btnGetData").kendoButton({ 
    click: function (event){ 

     var dropdownlist = $("#dataList").data("kendoDropDownList"); 
     console.log(dropdownlist); 
     console.log(dropdownlist.text()); 
     console.log(dropdownlist.value());  
     console.log(dropdownlist.selectedIndex); 
    } 
    }) 
    $(document).ready(function() { 
    $(".ddlData").kendoDropDownList({ 
     dataTextField: "text", 
     dataValueField: "value", 
     dataSource: [ 
     { text: "data 1", value: "1" }, 
     { text: "data 2", value: "2" }, 
     { text: "data 3", value: "3" }, 
     { text: "data 4", value: "4" } 
     ] 
    }); 
    }); 



</script> 
Смежные вопросы