2

我将一个DropDownList小部件绑定到select这样的事件:

var items = [
    { text: 'Item 3', value: '3' },
    { text: 'Item 4', value: '4' }
];

var dropDownListEl = $('#dropdownlist');
dropDownListEl.kendoDropDownList({
    dataTextField: 'text',
    dataValueField: 'value',
    index: 0
});

var kDropDownList = dropDownListEl.data('kendoDropDownList'),
    ds = kDropDownList.dataSource;

items.forEach(function (item) {
    ds.add(item);
});

kDropDownList.bind('select', function (e) {
    console.log('this.value(): ' + this.value());
});

但是,当我进行选择时,它不会返回正确的值。

我一直在尝试几乎所有的可能性,但都没有奏效。http://jsfiddle.net/glenn/gxJ3S/

它快把我逼疯了!

4

5 回答 5

8

如下绑定Kendo DropDownList的Select 事件以获得正确的选中项

   kDropDownList.bind('select', function (e) {
       var dataItem = this.dataItem(e.item.index());
        console.log('this.value(): ' + dataItem.value);

   });

这是工作的 JSFiddle

于 2014-02-06T04:52:47.253 回答
3

改用change事件,它更直接

..
  change: function(e) {
    var value = this.value();
    // Use the value of the widget
  }
..
于 2015-09-09T10:00:33.083 回答
1

如果您使用角度,您可以通过以下方式获取所选项目: e.sender.dataItem(e.item.index())

于 2015-01-14T15:00:32.703 回答
1
var _item = e.sender.dataItem(e.sender.selectedIndex);
于 2015-09-03T11:36:26.713 回答
1

我认为 Kendo 改变了他们的 API:

重要提示:自 2015 年第一季度 (2015.1.318) 版本以来,选项标签已移到项目列表 DOM 集合之外。因此,jQuery.index() 不能再用于可靠地检测选项标签是否是选定的下拉项。

参考。http://docs.telerik.com/kendo-ui/api/javascript/ui/dropdownlist#events-select

最终,这是唯一对我有用的东西:

var item = e.sender.dataItem(e.item)
于 2015-12-29T15:59:40.747 回答