移动端设置下拉框的可见性

如描述,移动端可以通过JS设置下拉框的可见性吗

image.png

简道云 Zhangggg 发布于 2020-12-7 14:12 (编辑于 2020-12-7 15:32)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
zsh331Lv8专家互助
发布于2020-12-7 14:20
  • Zhangggg Zhangggg(提问者) Hi,我是想参数的值影响下拉框的可见性,如果参数值为A则下拉框可见,否则不可见
    2020-12-07 14:26 
  • zsh331 zsh331 回复 Zhangggg(提问者) 文档不是告诉你怎么用了吗= =#
    2020-12-07 14:27 
  • Zhangggg Zhangggg(提问者) 回复 zsh331 文档这个我知道,我是想问在报表块的JS事件中能否设置下拉框的可见性
    2020-12-07 14:44 
最佳回答
0
朝赟丶Lv6初级互助
发布于2020-12-7 14:14

JS隐藏控件移动端不支持。

  • Zhangggg Zhangggg(提问者) 那现在我要怎么实现呢?这个按钮的显示是和参数挂钩的,不能一直显示出来
    2020-12-07 14:16 
  • 朝赟丶 朝赟丶 回复 Zhangggg(提问者) 控件不好隐藏,报表展示倒是好隐藏,条件属性,全局参数等等
    2020-12-07 14:19 
最佳回答
0
snrtuemcLv8专家互助
发布于2020-12-7 14:24(编辑于 2020-12-7 14:50)
下拉框编辑后事件,参考js
var a=this.getValue();
var city = this.options.form.getWidgetByName("city");
var name = this.options.form.getWidgetByName("name");
if(a=="总公司"){
	city.setVisible(false);
	name.setVisible(false);
	}else{
		city.setVisible(true);
      	name.setVisible(true);		
		}

决策报表在控件初始化事件,cpt可以在报表加载结束事件

setTimeout(function() {
	var city = this.options.form.getWidgetByName("city");
	var name = this.options.form.getWidgetByName("name");
	if (a == "总公司") {
		city.setVisible(false);
		name.setVisible(false);
	} else {
		city.setVisible(true);
		name.setVisible(true);
	}
}, 1000);

image.png

  • Zhangggg Zhangggg(提问者) 那能设置下拉框初始化事件根据当前页面某一个参数的值来判定下拉框的可见性不
    2020-12-07 14:45 
  • snrtuemc snrtuemc 回复 Zhangggg(提问者) 初始化可以的,但是参数好像需要一开始就传进来,然后初始化事件需要延时一下,不然会出错 可以写在加载结束事件 setTimeout(function(){ },1000); {}中写你的js事件
    2020-12-07 14:48 
  • Zhangggg Zhangggg(提问者) 回复 snrtuemc 您看一下我补充的图片,我写了报表块的点击后事件,JS不生效,是哪里错了吗(报表块里面可以进行点击切换,里面的值影响下拉框的可见性)
    2020-12-07 15:33 
  • Zhangggg Zhangggg(提问者) 回复 snrtuemc 我这个后面会一直切换的,如果只是初始化应该不行吧
    2020-12-07 15:38 
  • snrtuemc snrtuemc 回复 Zhangggg(提问者) tab点击事件没有效果的
    2020-12-07 15:44 
最佳回答
0
twsheLv6初级互助
发布于2020-12-7 16:44(编辑于 2020-12-7 16:48)

给个我的方案吧。

这个是写在被控制控件初始化JS

var b = this.options.form.getWidgetByName("DWBH");
var c = this.options.form.getWidgetByName("label_DWBH");
//b.setVisible(false); //不可见
b.setEnable(false); //不可用
//c.setVisible(false);
c.setEnable(false);
b.setValue(99);


以下是写在控制控件编辑后事件JS:

var a = this.getValue();
var b = this.options.form.getWidgetByName("DWBH");
var c = this.options.form.getWidgetByName("label_DWBH");
if (a == "销退") {
	b.setVisible(true); //可见
	b.setEnable(true); //可用
	c.setVisible(true);
	c.setEnable(true);
	b.setValue();
} else if (a == "盘点") {
	//b.setVisible(false); //不可见
	b.setValue(99);
	b.setEnable(false); //不可用
	//c.setVisible(false);
	c.setEnable(false);


当控制控件编辑的时候,选择销退,那么被控制的控件可用。

当控制控件编辑的时候,选择盘点,那么被控制的控件不可用,并且赋值给被控制控件值99


看看效果:

123.gif

  • Zhangggg Zhangggg(提问者) 我另外一个是报表块,好像移动端JS写在报表块不生效
    2020-12-07 21:10 
  • 5关注人数
  • 667浏览人数
  • 最后回答于:2020-12-7 16:48
    请选择关闭问题的原因
    确定 取消
    返回顶部