我有一个KendoDropDownList,其中包含一个对象列表的数据源,如:
[{"Id":1,"Text":"Item One"},{"Id":2,"Text":"Item Two"}]
请注意,项目的Id
属性是一个数字而不是字符串。
如果在从列表中选择之前检查绑定输入的值,我会收到一个数字。 从这个列表中选择一个项目后,我收到了一个文本(一个用引号括起来的数字)。
这很麻烦,尤其是在存在'hasChanges'标志的情况下。
如何修改此行为?
答案 0 :(得分: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/ 强>