使用knockout.js从选择列表中检索值

时间:2014-03-10 21:31:47

标签: javascript knockout.js

我正在使用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

}

Here is a fiddle with the code

1 个答案:

答案 0 :(得分:3)

你的第二个电话就是你想要的电话:

self.selectedMonth()

这揭示了可观察到的价值。它是一个对象,例如:

{ month: "03" }

这是easier to spot if you console.log而不是alert

在任何情况下,要获取月份值,只需要询问该属性:

alert(self.selectedMonth().month);

请参阅this fiddle