2016-04-11 19 views
0

ユーザー入力フィールドに数値をとるフォームがあります。最初のレンダリング時にその値がゼロであれば、その値を別の観測値の値に設定します。ここで私はそれをレンダリングする際に発行数量がゼロである場合に発行された数量は、UI上での値として表示することも計画数に設定してしたいデータ入力のデフォルト値をknockout.jsでtext型のユーザー入力にバインドし、ユーザーが値を入力した場合にオーバーライドする方法

<p>Planned Qunatity: <span id="plQuantity" data-bind="text: plannedQuantity" /></p> 
<p>Issued Quantity: <input id="isQuantity" data-bind="value: issuedQuantity" /></p> 

ただし、[発行数量]フィールドに値を入力した場合、発行数量がゼロだったため、最初は計画数量に設定されていたデフォルト値を上書きする必要があります。

私はフィドルを作成しました。 http://jsfiddle.net/v0qnp7v2/2/

+0

あなたのフィドルには、ここに表示されているものとはかなり異なるコードが含まれており、一部のビューモデルコードも含まれています。質問を更新し、(a)完全な[mcve]と(b)*すべての要件を含めることができますか? – Jeroen

答えて

1

「購読」を使用して、観測対象に変更されたトラックを追跡できます。ここにあなたのフィドルが変更された:

self.issuedQuantity.subscribe(function(newValue){ 
     if (newValue == 0) { 
      self.issuedQuantity(self.plannedQuantity()); 
    } 
}); 

http://jsfiddle.net/xr5yLLpa/5/

あなたが0にissuedQuantityの値を設定すると変更がサブスクライブに傍受し、plannedQuantityの値に設定されています。テキストボックスを終了すると変更が行われることに注意してください。フォーカスはテキストボックスにはもうありません。

関連する問題