为每个检查的结果运行一个函数

时间:2018-01-24 23:27:39

标签: javascript knockout.js

如何在动态选择的选项中检查每个结果的运行函数。目前https://jsfiddle.net/7sx1jyg3/3有我的表格的代码,其中包含一些随机填充“结果”

单击generate时我需要获取的信息是所选每个实例的复选框的值。目前使用代码我有每个复选框的值是数据库中实例的ID,这是我正确生成PDF所需的信息。 jsfiddle中与此问题最相关的代码如下:

每个选定的项目都会被添加到queuedValues可观察数组中,而generate函数是我单击生成按钮时要运行的函数,这样我就可以完成url信息的功能,所以checkedValue将被设置为每个选定的结果

DbCommandBuilder.QuoteSuffix

1 个答案:

答案 0 :(得分:0)

以下是using the checked binding with an array的一个简单示例。

要拥有包含所选行的id的数组,请在父对象中创建数组,而不是在每行中创建数组。在复选框中,将checked绑定到数组(使用$parent,因为您位于foreach范围内)。将value绑定到id

当您选中一个方框时,id将被添加到数组中;取消选中某个框后,id将从阵列中删除。

vm = {
  rows: [{
    id: 1,
    name: 'First'
  }, {
    id: 2,
    name: 'Second'
  }, {
    id: 3,
    name: 'Third'
  }],
  selectedIds: ko.observableArray([])
};

ko.applyBindings(vm);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<table>
  <tbody data-bind="foreach: rows">
    <tr>
      <td>
        <input type="checkbox" data-bind="checked: $parent.selectedIds, value: id">
      </td>
      <td data-bind="text:name"></td>
    </tr>
  </tbody>
</table>
<div data-bind="text: JSON.stringify(selectedIds())"></div>