复选控件数组怎麼用js再分組

填报复选控件数组目前是字符串1,2,3,4,5,6,7,8,代表小时,

下面的异物程度由复选值要写js在状态改变时去改变setEnable的true或false,

比如勾了1,2,3,只能填初期跟中期的,后期的不可填

勾了5,6,7,8,只能填中期跟后期的,初期的不可填

这个字符串数组要怎么用js再分组截出来呢?

pic-017.png

JavaScript akahime 发布于 2023-10-31 15:28
1min目标场景问卷 立即参与
回答问题
悬赏:0 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
快乐星光Lv5中级互助
发布于2023-10-31 16:00(编辑于 2023-10-31 16:16)

在12345678复选控件上写编辑结束事件,注意初、中、后控件默认不可用,逻辑有错误,需要加上设置为不可用

var cks=_g().getParameterContainer().getWidgetByName("复选控件").getValue(); //cks是一个数组

//需要先设为不可用

_g().getParameterContainer().getWidgetByName("初期控件").setEnable(false);

_g().getParameterContainer().getWidgetByName("中期控件").setEnable(false);

_g().getParameterContainer().getWidgetByName("后期控件").setEnable(false);

for (var i=0,lh=cks.length; i<lh; i++){

if(cks[i]<=1){

_g().getParameterContainer().getWidgetByName("初期控件").setEnable(true);

} else if (cks[i]>=2 && cks[i]<=5){

_g().getParameterContainer().getWidgetByName("中期控件").setEnable(true);

} else {

_g().getParameterContainer().getWidgetByName("后期控件").setEnable(true);

}

}

  • akahime akahime(提问者) 填报元件好像只有状态改变可以写js, 这样写好像对一半,若我勾了1,2目前是三种控件都会可见,我目前这样写,还能怎么改呢 var cks=this.getValue(); //当前单元格元件 var location = this.options.location; //获取当前元件的位置 var cr = FR.cellStr2ColumnRow(location); var col = cr.col; //列号 var ro = cr.row; //行号 //获取下一列 var C12 = contentPane.getWidgetByCell(FR.columnRow2CellStr({col: col, row: ro+1})); var C13 = contentPane.getWidgetByCell(FR.columnRow2CellStr({col: col, row: ro+2})); var C14 = contentPane.getWidgetByCell(FR.columnRow2CellStr({col: col, row: ro+3})); C12.setEnable(false); C13.setEnable(false); C14.setEnable(false); for (var i=0,lh=cks.length; i<lh; i++){ if(cks[i]=2 && cks[i]<=5){ C13.setEnable(true); //中期元件 } else { C14.setEnable(true); //后期元件 } }
    2023-10-31 17:17 
  • 快乐星光 快乐星光 回复 akahime(提问者) 可见,但不可用啊。你要想不可见就用invisible()
    2023-11-01 08:41 
  • akahime akahime(提问者) 回复 快乐星光 打错字,指的是可用不是可见,不过无妨 把else也限制区间改成else if (cks[i]>=6 && cks[i]<=8)就行了 谢谢大佬
    2023-11-01 11:42 
  • 2关注人数
  • 203浏览人数
  • 最后回答于:2023-10-31 16:16
    请选择关闭问题的原因
    确定 取消
    返回顶部