0

我有一个带有对象列表数据源的 KendoDropDownList,例如:

[{"Id":1,"Text":"Item One"},{"Id":2,"Text":"Item Two"}]

请注意,项目的Id属性是数字而不是字符串。

如果我在从列表中选择之前检查绑定输入的值,我会收到一个数字。从此列表中选择一个项目后,我收到文本(用引号括起来的数字)。

这很麻烦,尤其是在有“hasChanges”标志的情况下。

如何修改此行为?

4

1 回答 1

2

Kendo UI 不对这种行为负责,HTML 负责。所有<select/>选项值和<input/>值在标记中都被视为字符串。查看下面的代码和随附的 jsFiddle 以了解不同之处。

HTML

<select id="test"></select>

JavaScript

var data = [{"Id":1,"Text":"Item One"}, {"Id":2,"Text":"Item Two"}]

$('#test').kendoDropDownList({
    dataSource: data,
    dataTextField: 'Text',
    dataValueField: 'Id'
});

$('#test').on('change', function() {
  var value,
      item; 

  value = $(this).val();
  item = $(this).data('kendoDropDownList').dataItem();

  alert(
      'HTML ' + value + ' is a ' + typeof value + '\n' +
      'Object ' + item.Id + ' is a ' + typeof item.Id
  );
});

http://jsfiddle.net/pd9FS/1/

于 2013-08-30T05:32:49.947 回答