0

説明

こんにちは、ノックアウトを使用しています。3つのチェックボックスと1つの入力フィールドがあります。チェックボックスをクリックすると、チェックボックスの値が入力フィールドに表示されます。ただし、チェックボックスの値を取得する代わりに、NaNが表示されます。

jsFiddleリンク

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());
4

2 に答える 2

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")...など。

チェックボックスの値を数値に変更してみてください。

ここのように:http://jsfiddle.net/2L4W9/

于 2013-03-22T17:08:38.653 に答える
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>

値をテキストの値に変更します。

于 2013-03-22T17:10:03.923 に答える