我使用Knockout创建了这个HTML标记:
<select data-bind="options: items, optionsText: 'name', value: 'id', event: { change: selectItems }"></select>
和更改事件的此函数:
self.selectItems = function (context, event) {
// do something with selected value here
};
我希望在event.target.value中获取id的值,但它是空的。检查内部html后,我发现生成的选项,它们都是空的:
<option value="">All Items</option>
<option value="">Bag</option>
// more
我已经确认id在viewModel中有值。有人有什么想法吗?
答案 0 :(得分:0)
由于您使用的value
绑定没有optionsValue
绑定,因此id
将从items数组设置为选定的选项对象。我认为你的意思是将id设置为所选选项对象的id,因此你应该使用optionsValue='id'
。
<select data-bind="options: items, optionsText: 'name', optionsValue='id', value: 'id', event: { change: selectItems }"></select>
然后,要访问所选的ID,您可以使用:
self.selectItems = function (context, event) {
console.debug(context.id());
};