复选框和输入中的输入字段相关性

时间:2013-03-27 22:53:18

标签: html knockout.js

说明:

我有两件事,一个复选框和输入字段。这就是我想要的。在我的viewmodel中,我有两个observable,一个保存复选框check / uncheck(ture或false),另一个保存输入字段值。这两个值都来自数据库,但我在这里将它们作为静态来简化。因此,当页面加载并且复选框值为true时,应启用输入字段并显示值。复选框也应显示为选中状态。如果取消选中该复选框,则输入字段值应为零,并且应禁用输入字段。如果在取消选中后检查复选框,则输入字段值仍应为零。

小提琴:

 data-bind="checked: boxChecked" type="checkbox" ></input>
     <br/>
  Result:
  <input data-bind="enable: boxChecked() == true,
                         value: boxCheked() = true ? result : result = 0" type="text"></input>

http://jsfiddle.net/KGSUD/1/

我一直在玩这个小提琴很长一段时间但是无法弄明白。

我将非常感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

我会从视图中取出逻辑(HTML)并将其放在ViewModel中。

HTML:

<input data-bind="checked: boxChecked" type="checkbox" ></input>
<br/>
Result:
<input data-bind="enable: boxChecked, value: result" type="text"></input>

JS:

var ViewModel = function() {
    var self = this;
    self.boxChecked = ko.observable(true);
    self.result = ko.observable('10');

    self.boxChecked.subscribe(function(newValue) {
        if (!newValue)
            self.result("0");
    });
};

订阅将设置result,html绑定变得更简单。这是the fiddle