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



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

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

从这个数组 [

1,0,0,1,0,0,0,0,0]

我想以编程方式单击表格表单的第一行和第 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">选择 行/标签输入类型="复选框" 名称="f01" 值="15" 类="行选择器" id="f01_0015"

任何帮助表示赞赏。

这假定您要选中的所有复选框都命名为 <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" />

如果没有看到 HTML,我不确定它是否适合您,但请尝试以下操作:

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

您只需选中arrBoxes中当前项目相同索引的复选框,并且仅在当前值不为假时才选中。

最新更新