说明
嗨,我正在使用淘汰赛。我有三个复选框和一个输入字段。当我单击复选框时,复选框的值应出现在输入字段中。但是,我没有看到复选框的值,而是看到了NaN。
function ViewModel() {
var self = this;
self.primaryClass = ko.observable("50");
self.secondaryClass = ko.observable("40");
self.otherClass = ko.observable("10");
self.selectedValues = ko.observableArray([]);
self.sum = ko.computed(function () {
var total = 0;
ko.utils.arrayForEach(self.selectedValues(), function (item) {
total += parseInt(item);
});
return total;
});
}
ko.applyBindings(new ViewModel());
答案 0 :(得分:2)
查看代码,在这一行,
total += parseInt(item);
变量项是复选框的值。
<input data-bind="checked: selectedValues" type="checkbox" value="primaryClass">500</input>
<input data-bind="checked: selectedValues" type="checkbox" value="secondaryClass">200</input>
<input data-bind="checked: selectedValues" type="checkbox" value="otherClass">100</input>
意味着您正在尝试parseInt("primaryClass")
......等等。
尝试将复选框的值更改为数字。
答案 1 :(得分:1)
检查出来:
http://jsfiddle.net/Dtwigs/uFQdq/5/
这样做是为了让它们变得动态:
<label>
<input data-bind="checked: selectedValues, value: primaryClass" type="checkbox"></input>
<span data-bind="text: primaryClass"></span>
</label>
将值更改为文本中的值。