下拉复选框内的值含有特殊符号如#&等,在链接传参的JS需要怎么写?

下拉复选框内的值含有特殊符号如 # & 等,在链接传参的JS需要怎么写?

目前的JS如下:

var c=this.getValue();//获取第3个下拉复选框控件值

var spn=this.options.form.getWidgetByName("第1个下拉单选框控件名").getValue();//获取第1个下拉单选框控件值

var yt=this.options.form.getWidgetByName("第1个下拉复选框控件名").getValue();//获取第1个下拉复选框控件值

var lou=this.options.form.getWidgetByName("第2个下拉复选框控件名").getValue();//获取第2个下拉复选框控件值

var b=c.split(",");

if(b.length>0) {

var URL='/webroot/decision/view/report?viewlet=模板名称&op=view&跳转目标报表的第3个下拉复选框控件名='+c+'&跳转目标报表的第1个下拉单选框控件名='+spn+'&跳转目标报表的第1个下拉复选框控件名='+yt+'&跳转目标报表的第2个下拉复选框控件名='+lou; 

window.open(encodeURI(encodeURI(URL))); //在新标签页打开报表

}

问题:

原报表的第3个下拉复选框控件值存在:1&2  这样形态的数据筛选值,通过以上JS传参到目标报表,对应的控件只接收到了 1  特殊字符&以及后面的2没有传过去或者没识别到。

目前是源报表有四个控件:一个单选,三个复选,JS写在第三个复选的编辑结束后;

跳转目标报表有四个控件:一个单选,三个复选,JS写在查询按钮点击1;

FineReport 鲤鱼爱喝气泡水 发布于 2023-2-14 16:27 (编辑于 2023-2-14 17:08)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
鲤鱼爱喝气泡水Lv3见习互助
发布于2023-2-14 17:55

把跳转目标表的控件名称换一下名称,利用新的名称结合公式作为新的全局变量lou2即可解决;

最佳回答
0
snrtuemcLv8专家互助
发布于2023-2-14 16:28
  • 鲤鱼爱喝气泡水 鲤鱼爱喝气泡水(提问者) 你好,这篇看了,没看明白,能否具体帮我解答一下
    2023-02-14 16:29 
  • snrtuemc snrtuemc 回复 鲤鱼爱喝气泡水(提问者) 就是用 encodeURIComponent() 方法对参数值进行编码转换
    2023-02-14 16:31 
  • 鲤鱼爱喝气泡水 鲤鱼爱喝气泡水(提问者) 回复 snrtuemc 目前JS已补充,麻烦帮忙详细解答下,谢谢
    2023-02-14 16:47 
  • snrtuemc snrtuemc 回复 鲤鱼爱喝气泡水(提问者) &只能替换了,这个是帆软关键字,看楼下方案
    2023-02-14 16:50 
  • 鲤鱼爱喝气泡水 鲤鱼爱喝气泡水(提问者) 回复 snrtuemc 如果是#或者| 呢?
    2023-02-14 16:54 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-2-14 16:28(编辑于 2023-2-14 17:00)

用其它符号代替吧,接收后再replace()替换回来

----------------

var c=this.getValue().replace("&","_");//获取第3个下拉复选框控件值,并将"&"替换为"_"

var spn=this.options.form.getWidgetByName("第1个下拉单选框控件名").getValue();//获取第1个下拉单选框控件值

var yt=this.options.form.getWidgetByName("第1个下拉复选框控件名").getValue();//获取第1个下拉复选框控件值

var lou=this.options.form.getWidgetByName("第2个下拉复选框控件名").getValue();//获取第2个下拉复选框控件值

var b=c.split(",");

if(b.length>0) {

var URL='/webroot/decision/view/report?viewlet=模板名称&op=view&跳转目标报表的第3个下拉复选框控件名='+c+'&跳转目标报表的第1个下拉单选框控件名='+spn+'&跳转目标报表的第1个下拉复选框控件名='+yt+'&跳转目标报表的第2个下拉复选框控件名='+lou; 

window.open(encodeURI(encodeURI(URL))); //在新标签页打开报表

}

  • 0关注人数
  • 449浏览人数
  • 最后回答于:2023-2-14 17:55
    请选择关闭问题的原因
    确定 取消
    返回顶部