需要根据用户权限判断某些控件是否可用,JS如下,放在初始化事件中,为什么没有生效呢

button1,button2,button3 需要置灰,不可点击,checkBox0需要隐藏,business_unit需要赋值,JS代码如下,大师帮忙看下,好难啊

var qx=this.options.form.getWidgetByName("level");

var qy=this.options.form.getWidgetByName("area_name");

var button1=this.options.form.getWidgetByName("button1");

var button2=this.options.form.getWidgetByName("button2");

var button3=this.options.form.getWidgetByName("button3");

var checkBox0=this.options.form.getWidgetByName("checkBox0");

var business_unit=this.options.form.getWidgetByName("business_unit");

setTimeout(function() {

if(qx=='01'){

button1.setEnable(true);

    button2.setEnable(true);

button3.setEnable(true);

}

else if(qx=='02'){

button1.setEnable(false);

                button2.setEnable(false);

        button3.setEnable(false);

checkBox0.setVisible(false);

business_unit.setValue(qy);

}

}, 1000);

FineReport yzmZFHiy5062093 发布于 2022-12-2 15:51
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
snrtuemcLv8专家互助
发布于2022-12-2 15:52

都要延迟才可以

var th=this;

setTimeout(function() {

var qx=th.options.form.getWidgetByName("level");

var qy=th.options.form.getWidgetByName("area_name");

var button1=th.options.form.getWidgetByName("button1");

var button2=th.options.form.getWidgetByName("button2");

var button3=th.options.form.getWidgetByName("button3");

var checkBox0=th.options.form.getWidgetByName("checkBox0");

var business_unit=th.options.form.getWidgetByName("business_unit");

if(qx=='01'){

button1.setEnable(true);

    button2.setEnable(true);

button3.setEnable(true);

}

else if(qx=='02'){

button1.setEnable(false);

                button2.setEnable(false);

        button3.setEnable(false);

checkBox0.setVisible(false);

business_unit.setValue(qy);

}

}, 1000);

  • yzmZFHiy5062093 yzmZFHiy5062093(提问者) 我本身就设置了延迟的啊
    2022-12-02 16:28 
  • snrtuemc snrtuemc 回复 yzmZFHiy5062093(提问者) 我把取值也放进延迟了,还有如果数据量大,加载慢,延迟事件1000改成5000这种大的看下
    2022-12-02 16:31 
  • yzmZFHiy5062093 yzmZFHiy5062093(提问者) 回复 snrtuemc VM168:3 Uncaught TypeError: Cannot read properties of undefined (reading \'form\') at :3:19 提示这个报错,获取不到控件,决策报表,是什么原因呢
    2022-12-02 17:13 
  • snrtuemc snrtuemc 回复 yzmZFHiy5062093(提问者) 那直接改成_g().getWidgetByName格式就可以了
    2022-12-02 19:05 
最佳回答
0
LTC朝Lv6高级互助
发布于2022-12-2 15:55

下面是我自己项目的JS,你参考下:

var obj = this.options.form.getWidgetByName("role_edit");//参数role_edit用于判断登录人是否有编辑的角色,如果有则为1

var val = obj.getValue();

var form = this.options.form;

var p1Widget = form.getWidgetByName("Button_1");//按钮1

var p2Widget = form.getWidgetByName("Button_2");//按钮2

var p3Widget = form.getWidgetByName("Button_3");//按钮3

if (val == '1'){

p1Widget.setVisible(true);

p2Widget.setVisible(true);

p3Widget.setVisible(true);

}else{

p1Widget.setVisible(false);

p2Widget.setVisible(false);

p3Widget.setVisible(false);

}

  • yzmZFHiy5062093 yzmZFHiy5062093(提问者) 按照你的代码改了也是报这个错,什么原因呢,Cannot read properties of undefined (reading \\\'form\\\')
    2022-12-02 17:19 
  • 2关注人数
  • 448浏览人数
  • 最后回答于:2022-12-2 15:55
    请选择关闭问题的原因
    确定 取消
    返回顶部