2012-11-27 65 views
4

我想多種文字輸入結合具有相同觀察到的(相同的動作)綁定多個輸入執行相同的操作

<input id="test1" name="test1" type="text" data-bind="value: searchQuantity"/> 
<input id="test2" name="test2" type="text" data-bind="value: searchQuantity"/> 

var viewModel = { 
     searchQuantity: ko.observable(), 
    }; 


<p>You have typed: <span id="spantest1" data-bind="text: searchQuantity"></span></p> 
<p>You have typed: <span id="spantest2" data-bind="text: searchQuantity"></span></p> 

,但是當我改變輸入的值TEST1它改變了test2的值。

我想對兩個輸入做同樣的操作,但是我想改變對應範圍的值。 (這僅僅是一個樣品,所以我可以做同樣的與文本框的網格,我想在一個文本框的變化重新計算其包含更改文本框同一列的所有文本框的總和。)


我想我沒有解釋我的問題。

請看看截圖
enter image description here

我真正想要的紅色文本框更改值時,綠色的細胞將與列的和被更新(總和將是年)。

謝謝。

回答

1


請看看我爲您創造的this demo
HTML代碼

<input id="test1" name="test1" type="text" data-bind="value: searchQuantity1, valueUpdate:'afterkeydown'"/> 
<input id="test2" name="test2" type="text" data-bind="value: searchQuantity2, valueUpdate:'afterkeydown'"/> 

<p>Test1 value is : <span id="spantest1" data-bind="text: searchQuantity1"></span></p> 
<p>Test2 value is : <span id="spantest2" data-bind="text: searchQuantity2"></span></p> 
<p>Sum: <span id="spantest3" data-bind="text: spans"></span></p> 


JavaScript代碼

var viewModel = function(data) { 
    var self = this; 
    self.searchQuantity1 = ko.observable(1); 
    self.searchQuantity2 = ko.observable(2); 
    self.spans = ko.computed(function() { 
     return Number(self.searchQuantity1())+Number(self.searchQuantity2()); 
    }, self); 
}; 

ko.applyBindings(new viewModel()); 


是否回答你的問題嗎?
謝謝。

+0

不,請檢查我的答案。 – user1856386

相關問題