一旦另一个文本框的值发生变化,如何立即更改一个文本框的值

时间:2015-05-10 05:12:11

标签: asp.net

我正在制作一个asp.net网页,我有三个文本框。 我们考虑一下textbox1,textbox2,textbox3。现在当我加载页面时textbox1所拥有的默认值是10000.现在我想在textbox2中输入一个值。只要我在textbox2中输入值,它就会自动显示textbox3中的剩余值。 例: Textbox1值的默认值为10000。 当我输入1500进入textbox2。 textbox3的值应为8500.一旦textbox2的值发生变化,它应立即更改。无论textbox2的值是什么,它都应该从textbox1中减去,并且应该立即在textbox3上闪烁,而无需按任何按钮。

1 个答案:

答案 0 :(得分:0)

有多种方法可以做到这一点,目前最简单的是KnockoutJS

您可以将模型绑定到所有三个文本框。第三个框将绑定computed observable

像这样:

假设您的UI代码如下所示:

<div id="application">
    <input type="text" data-bind="value: init1, valueUpdate='afterkeydown'" value="1000"/>
    <input type="text" data-bind="value: init2, valueUpdate='afterkeydown'"/>
    <input type="text" data-bind="value: computed"/>
</div>

JavaScript代码如下所示:

$(function(){
    var ViewModel = new function(){
        this.init1 = ko.observable(1000);
        this.init2 = ko.observable(0);
        this.computed = ko.computed(function(){ 
            return this.init1() - this.init2();
        });
    };

    var vm = new ViewModel();
    ko.applyBindings(vm, document.getElementById('application');
});

你需要jQuery和KnockoutJS来实现这个目的。