从 0 和 1 的数组中恢复复选框的状态

restoring the state of checkboxes from an array of 0 and 1s

我想以 ORACLE APEX 表格形式恢复复选框的状态。 使用 APEX 行选择器 f01 在第一列中进行选择。

我将复选框状态保存在一个集合中,然后从那里保存到一个数组中 在名为 P250_JSON 的区域项目中,因此 P250_JSON 的值 是一个字符串:'[1,0,0,1,0,0,0,0,0]' 例如如果第一个和第四个 已选择行。

来自这个数组 [1,0,0,1,0,0,0,0,0]

我想以编程方式单击表格表单的第 1 行和第 4 行元素 并在需要时恢复原来的选择。

Jquery 的初学者,但我做到了这一点:

var x = $v("P250_JSON");
var arrBoxes = jQuery.parseJSON(x);


$.each(arrBoxes,
      function(index,val){
      $("input[name='f01']").attr("checked","checked");
                           });

显然这检查了所有的复选框,所以少了一些东西。

第 16 行的 HTML 是: label for="f01_0015" class="hideMeButHearMe">Select Row/label input type="checkbox" name="f01" value="15" class="row-selector" id="f01_0015"

感谢任何帮助。

如果没有看到 HTML,我无法确定它是否适合你,但试试这个:

$.each(arrBoxes,
      function(index,val){
      if(val) {
          $("input[name='f01']").get(index).attr("checked","checked");
      }
                           });

只需要select勾选arrBoxes中当前项相同索引的checkbox,只有当前值不为false才勾选

这假设您要检查的所有复选框都命名为 <input name="f01" />。如果不是,那么您需要在问题中显示一些标记。

var arrBoxes = [1,0,0,1,0];

var checkboxes = $("input[name='f01']"); //get all the checkboxes
$.each(arrBoxes, //loop through your array
  function(index, val) {
    checkboxes.eq(index) //get the current checkbox
      .prop("checked", val === 1); //set checked state based on index value
  }
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="checkbox" name="f01" />
<input type="checkbox" name="f01" />
<input type="checkbox" name="f01" />
<input type="checkbox" name="f01" />
<input type="checkbox" name="f01" />