淘汰检查/取消选中所有组合框

Arb*_*æde 7 javascript jquery knockout.js

我使用knockout将JSON obejct映射到用户控件,我有一个单独的复选框列表,它们看起来像

 <input type="checkbox" data-bind="checked: IsEnabled1" />
Run Code Online (Sandbox Code Playgroud)

我有JsonObject

 var viewModel = {
            IsEnabled1 :ko.observable(true),            
            IsEnabled2 :ko.observable(true),
            IsEnabled3 :ko.observable(false)
        };
  ...
  ko.applyBindings(viewModel);
Run Code Online (Sandbox Code Playgroud)

我想添加将检查/取消选中所有其他的全局复选框,我在JavaScript端进行了此更改但是全局复选框更新了UI部分,但它们来自单独的复选框的数据未映射到JSON对象.

全局复选框

  $("#GeneralTable thead tr th:first input:checkbox").click(function () {
            var checkedStatus = this.checked;
            $("#GeneralTable tbody tr td:first-child input:checkbox").each(function () {
                this.checked = checkedStatus;                    
            });

        });
Run Code Online (Sandbox Code Playgroud)

在此代码之后,我的JSON对象包含与UI无关的数据.

如何更新JS方面的更改后的所有JSON复选框?

小智 16

请查看示例:http://jsfiddle.net/MenukaIshan/5gaLjh2c/

我认为这正是你所需要的.所有物品都有IsChecked可观察的财产.ViewModel包含用于检查或取消选中所有项的计算可观察(可读和可写).

  • jsfiddle示例404。 (2认同)