获取选中复选框列的行 - 敲除JS

时间:2017-09-09 13:14:44

标签: javascript asp.net-mvc-4 checkbox knockout.js

我对Knockout JS完全不熟悉。我有一个表,其中一列是输入类型复选框。 在html表的末尾我有一个按钮作为"添加"。 现在我要做的就是点击"添加"按钮我应该能够获得检查复选框的所有行。

HTML

<table>
        <thead>
            <tr>
                <th>Add Data</th>
            </tr>
        </thead>
        <tbody data-bind="foreach: SearchResult">
            <tr>
                <td data-bind="text: Name"></td>
                <td><input type="checkbox" class="" data-bind="checked: selectedArray"/></td>
            </tr>
        </tbody>
        <tfoot>
            <tr>
                <td><button type="button" id="addButton" data-bind="click: AddSelection">Add</button></td>
            </tr>
        </tfoot>
    </table>

现在有人可以告诉我如何获取选中复选框列的所有行。 我已经完成了这个,但这对我没用。

send information from multiple checkbox to array Knockout js

提供参考 http://jsfiddle.net/smsharma/u9ts4uvf/

1 个答案:

答案 0 :(得分:1)

这是更新的小提琴:http://jsfiddle.net/u9ts4uvf/1/

您可以创建addItem函数,该函数创建一个新项目,并将其添加到数组availableItems

self.addItem = function() {
    var item = new BookItem(1, 'Lorem Ipsum', '$0.99');
    item.Selected(true);
    self.availableItems.push(item);
};

但您还需要在复选框中添加checked绑定,以确保在SelectedBookItem设置为true时检查它们:

<input type="checkbox" data-bind="value: id(), click: $root.toggleAssociation, checked: Selected" />