我正在使用Knockout.js 2.3.0而我正在尝试检索选择列表中的值集,但我无法让它工作。当我尝试提醒值时,我要么看到javascript,undefined或[object object](取决于我尝试过的)。
列表填充正常,我可以设置默认值,但我无法检索它。我做错了什么?
这是列表的HTML
<select data-bind='value: selectedMonth, options: $root.months, optionsText: "month"'></select>
这是JS
self.months = [{month: '-'},{month: '01'},{month: '02'},{month: '03'},{month: '04'},{month: '05'},{month: '06'},{month: '07'},{month: '08'},{month: '09'},{month: '10'},{month: '11'},{month: '12'}];
self.selectedMonth = ko.observable(self.months[0]);
self.submitButton = function(){
alert(self.selectedMonth); //a bunch of JavaScript
alert(self.selectedMonth()); //object, Object
alert(self.months[self.selectedMonth]); //undefined
}
答案 0 :(得分:3)
你的第二个电话就是你想要的电话:
self.selectedMonth()
这揭示了可观察到的价值。它是一个对象,例如:
{ month: "03" }
这是easier to spot if you console.log
而不是alert
。
在任何情况下,要获取月份值,只需要询问该属性:
alert(self.selectedMonth().month);
请参阅this fiddle。