【问题标题】:loop through checkboxes and get data遍历复选框并获取数据
【发布时间】:2013-04-03 21:20:34
【问题描述】:

这是我上一个问题here的延续

您可以看到页面加载时会显示 2 个选定项目,即列表中的两个和三个。现在,当我检查选项 Test1 时,它没有被添加到列表中。简而言之,它不会在列表中添加新选择的项目。我已经完成以下操作以循环选择项目

viewModel.selectedItems = ko.computed(function() {
debugger;
    return ko.utils.arrayMap(viewModel.checkDuplicate(), function(id) {
        return ko.utils.arrayFirst(viewModel.dataOne(), function(item) {
            return item.name1 == id; 
        }); 
    });
});   

我已经提出了小提琴here,所以它很容易理解。暂时忘记更新按钮。当我选择某个复选框时,它应该只显示在更新按钮下方的列表中选择的那些。请帮忙。

【问题讨论】:

    标签: jquery knockout.js


    【解决方案1】:

    现在,当我检查选项 Test1 时,它没有被添加到列表中。简而言之,它没有在列表中添加新选择的项目......

    我创建了一个小提琴,其中列表根据复选框的选中/取消选中进行更新。检查这个

    Working Fiddle

    视图模型

    function VM() {
        var self = this;   
    
        self.Checkboxes = ko.observableArray([
            new Checkbox("one", 1, "Test1"),
            new Checkbox("two", 2, "Test2", true),
            new Checkbox("three", 3, "Test3", true)
        ]);
    
        self.SelectedItems = ko.computed(function(){
            var boxes = [];
            ko.utils.arrayForEach(self.Checkboxes(), function(box){
                if(box.IsSelected()){
                  boxes.push(box);
                }
            });
            return boxes;
        });
    }
    

    如果有帮助,请告诉我!

    更新

    Working fiddle.

    【讨论】:

    • 你能编辑我的小提琴吗?您正在运行时创建复选框。我对淘汰赛没有那么自信。因此,如果您编辑我的小提琴,这将非常有帮助。
    • 我没有做任何不同的事情,基于Checkboxes observableArray entries 创建的复选框,在您的情况下,您也在做同样的事情,您的复选框是使用dataone observableArray enrties 创建的。
    • 你能修改我的小提琴吗?
    • 我试过但不确定如何使用 Isselected。查看更新的小提琴jsfiddle.net/TaF8W/20
    • IsSelected 属性应该与每个复选框对象关联,因此无论何时选中或取消选中任何复选框,其关联属性 IsSelected 都会更新。
    猜你喜欢
    • 1970-01-01
    • 2013-09-28
    • 2021-04-10
    • 1970-01-01
    • 2016-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-19
    相关资源
    最近更新 更多