js实现根据A控件值控制B控件显示隐藏

image.pngimage.png

这个是目前JS编辑A控件后执行,但现在有个小问题:当编辑后条件满足时B控件会可见可用,在这时使用C控件,A控件JS的效果就会消失,即使A控值满足条件B控件也会不可用不可见,有没有解决方案--------因为这个JS执行前提是A控件编辑后,有什么地方可以实现所有控件编辑后执行该JS

var self=this.options.form.getWidgetByName("ZZ");

var self1=this.options.form.getWidgetByName("label0_c_c");

var a=this;

setTimeout(function(){

        var value=a.getValue();

    if(value=="运行二部"){

self.setEnable(true);

self.setVisible(true);

self1.setEnable(true);

self1.setVisible(true);

}else{

self.setEnable(false);

self.setVisible(false);

self.setValue("");

self1.setEnable(false);

self1.setVisible(false);

}  

        },100);

FineReport 扁-王 发布于 2025-11-21 09:09 (编辑于 2025-11-21 09:13)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
ScyalcireLv7高级互助
发布于2025-11-21 09:11(编辑于 2025-11-21 09:16)

当C控件操作后可能触发表格局部刷新,导致A控件的JS绑定失效

编辑后事件改为值改变编辑结束事件

	var self = this.options.form.getWidgetByName("ZZ");
	var self1 = this.options.form.getWidgetByName("label0_c_c");
	var a = this.getValue();
	 
	if (a == "运行二部") {
	    self.setEnable(true).setVisible(true);
	    self1.setEnable(true).setVisible(true);
	} else {
	    self.setEnable(false).setVisible(false).setValue("");
	    self1.setEnable(false).setVisible(false);
	}

添加全局监听,在所有相关控件上绑定值改变事件

	// 在A控件、C控件的初始化后事件中添加
	contentPane.on("cellvaluechange", function (sheet, col, row) {
	    var aValue = _g().getCellValue("A控件所在单元格");
	    var self = _g().getWidgetByName("ZZ");
	    var self1 = _g().getWidgetByName("label0_c_c");
	    
	    if (aValue == "运行二部") {
	        self.setEnable(true).setVisible(true);
	        self1.setEnable(true).setVisible(true);
	    } else {
	        self.setEnable(false).setVisible(false).setValue("");
	        self1.setEnable(false).setVisible(false);
	    }
	});

最佳回答
0
Z4u3z1Lv6专家互助
发布于2025-11-21 09:11

那个是ABC?另外你这是单元格还是参数栏控件?

  • 2关注人数
  • 54浏览人数
  • 最后回答于:2025-11-21 09:16
    请选择关闭问题的原因
    确定 取消
    返回顶部