永洪vip

此人很懒,什么也没有留下

发帖数 3291粉丝 5
卡拉米米哇铂金四
2025-4-21 10:46:53 发布在问答
下拉列表参数组件
本帖最后由 卡拉米米哇 于 2025-4-21 11:18 编辑

有两个下拉列表参数,参数1为a,b,c ;参数2为0~9的十个数字。
我想要:参数1选a时,参数2 默认选上0,1,2,3,但是查看报告时仍可以添加4~9的选项。
参数1选b时,参数2默认选上345,查看报告时仍想选其他选项。

现在将默认脚本写在装载时运行,切换参数1选项 时参数2的默认无反应,但是我写在变化时运行,我就无法再选中参数2的其他选项。

各位大佬有什么好办法实现么?

最佳答案

数据分析之星
yhbi老6了 铂金四

2025-04-21 10:46:54

523
29
精彩评论29
yhbi老6了铂金四
发表于 2025-4-21 10:46:54 显示全部楼层
本帖最后由 yhbi老6了 于 2025-4-22 14:49 编辑


QQ截图20250422144551.png

Mimi的筛选 (1).jar

7.33 KB, 下载次数: 3

回复

使用道具 2#

卡拉米米哇铂金四 回复yhbi老6了铂金四
发表于 2025-04-22 15:18:53
类没有注册670
回复

yhbi老6了铂金四 回复卡拉米米哇铂金四
发表于 2025-04-22 15:21:05
嘶,你版本是不是低于10.23?...
回复

yhbi老6了铂金四 回复卡拉米米哇铂金四
发表于 2025-04-22 15:28:20
装个10版本,正常打开参考一下
回复

展开更多回复
yhdata_lyaa
发表于 2025-4-21 10:59:23 显示全部楼层
只有只在装载时了,只在生效默认值,看看脚本怎么写的呢
回复

使用道具 3#

卡拉米米哇铂金四 回复yhdata_lyaa
发表于 2025-04-21 11:04:56
脚本如下,但是我没大看懂你上面的回复呢? [code]if(param["参数1"]=="a"){ 参数2.setSelectedObects(["5","6"],STRING) } else if(param["参数1"]=="b"){ 参数2.setSelectedObects(["3","4","7"],STRING) }[/code]
回复

阿姆斯特朗炮钻石一
发表于 2025-4-21 14:55:15 显示全部楼层
2个笨方法,
1、两个控件,手动指定默认值,然后动态的去设置现实不现实
2、在变化时运行的时候设置默认值,变化时运行是,判断下第一个参数的值是否改变了,如果改变了,脚本设置改变后的默认值,如果第一个参数的值没敢变,不作任何处理
回复

使用道具 4#

卡拉米米哇铂金四 回复阿姆斯特朗炮钻石一
发表于 2025-04-21 15:21:22
第一个没有看懂呐 我试一下第二种方法
回复

卡拉米米哇铂金四 回复阿姆斯特朗炮钻石一
发表于 2025-04-22 11:24:08
炮哥,法2,我设置默认值并且可以手动点选的是参数2,我如何判断参数2现在的值与默认值是否一致?
回复

阿姆斯特朗炮钻石一 回复卡拉米米哇铂金四
发表于 2025-04-22 13:25:18
[i=s] 本帖最后由 阿姆斯特朗炮 于 2025-4-22 13:27 编辑 [/i] 用一个参数记录,判断这个参数是否与参数1一样,如果一样,不管默认值是什么(因为刚进来的时候记录的参数是没有值的,他会走不一样的逻辑,通过参数1给参数2默认值赋值),不做任何处理;不一样的话,先给这个参数复制上参数1的值,然后你在给他设置参数1对应的默认值,能明白什么意思吗?
回复

展开更多回复
yhdata_lyaa
发表于 2025-4-21 14:57:23 显示全部楼层
类型对得上吗,参考试试

回复

使用道具 5#

卡拉米米哇铂金四 回复yhdata_lyaa
发表于 2025-04-22 11:32:36
lyaa,你复现的这个脚本我这边本身也没有问题,是我的需求跟大多数情况不一样。 我的需求是,不仅要参数1选a 或 b时有对应的参数2默认值,而且还需要参数2 同时支持点选增加值。 举个例子,我参数1选中a,此时参数2默认先选中0,1,2,3,但是我还需要手动随机增加一个6(我的所有选项为0~9)。 若不加手动随机选的6 我用2楼回复脚本是可以实现的,现在问题是如何能支持变化时我随机再选值?
回复

yhdata_lyaa回复卡拉米米哇铂金四
发表于 2025-04-22 13:29:58
变化时运行没有写赋值脚本,应该还是可以改变的吧,只是不能固定先选中0,1,2,3了
回复

卡拉米米哇铂金四 回复yhdata_lyaa
发表于 2025-04-22 13:36:30
但 现在需求是 既要固定 又能额外增加
回复

展开更多回复
卡拉米米哇铂金四
发表于 2025-4-22 15:47:09 显示全部楼层
6哥 我自己敲了一下 报错呐

回复

使用道具 6#

yhbi老6了铂金四
发表于 2025-4-22 16:02:08 显示全部楼层
代码&视频

Desktop.zip

11.15 MB, 下载次数: 3

回复

使用道具 7#

卡拉米米哇铂金四 回复yhbi老6了铂金四
发表于 2025-04-22 16:58:34
6哥,下拉列表参数1.getSelectedLabels() 这是个什么函数?我这版本报错
回复

yhbi老6了铂金四 回复卡拉米米哇铂金四
发表于 2025-04-22 21:09:39
setSelectedObjects,打错了,哈哈哈
回复

哈嘿哈嘿哈铂金一
发表于 2025-4-22 17:59:19 显示全部楼层
试下这样呢,
装载时运行:param['变量']='变量a'

变化时运行:
if(param['变量']=='变量a'){
if(param['参数1']=='a')
{
参数2.setSelectedObjects(["1","2","3"],STRING);
param['变量']='变量b'
}
}

if(param['变量']=='变量b'){
if(param['参数1']=='b'){
参数2.setSelectedObjects(["4","5","6"],STRING);
param['变量']='变量a'
}
}
回复

使用道具 8#

mary01铂金一
发表于 2025-4-23 08:37:04 显示全部楼层
<select id="param1">
  <option value="a">a</option>
  <option value="b">b</option>
  <option value="c">c</option>
</select>

<select id="param2" multiple>
  <!-- Options will be dynamically added here -->
</select>


document.getElementById('param1').addEventListener('change', function() {
    var param2 = document.getElementById('param2');
    // 清除现有的选项
    param2.innerHTML = '';

    // 根据参数1的值添加默认选项
    if (this.value === 'a') {
        for (var i = 0; i <= 9; i++) {
            var option = document.createElement('option');
            option.value = i;
            option.text = i;
            // 默认选中0到3
            if(i <= 3) option.selected = true;
            param2.appendChild(option);
        }
    } else if (this.value === 'b') {
        for (var i = 0; i <= 9; i++) {
            var option = document.createElement('option');
            option.value = i;
            option.text = i;
            // 默认选中3, 4, 5
            if(i >= 3 && i <= 5) option.selected = true;
            param2.appendChild(option);
        }
    } else { // 对于c或其他值,您可以根据需要调整
        for (var i = 0; i <= 9; i++) {
            var option = document.createElement('option');
            option.value = i;
            option.text = i;
            param2.appendChild(option);
        }
    }
});

// 初始化时设置默认值
document.getElementById('param1').dispatchEvent(new Event('change'));
回复

使用道具 9#

卡拉米米哇铂金四
发表于 2025-4-28 11:11:41 显示全部楼层
我还没研究明白,最佳就先给售后五颗星的老6哥了,感谢各位的解答!十分感谢!【抱拳了!】
回复

使用道具 10#

yhbi老6了铂金四 回复卡拉米米哇铂金四
发表于 2025-04-28 11:18:54
来,冲你这句话,向日葵整上,我直接手把手
回复

卡拉米米哇铂金四 回复yhbi老6了铂金四
发表于 2025-04-28 11:40:54
6哥 等我忙完找你{:4_109:}
回复

高级模式
您需要登录后才可以回帖 登录 | 免费注册

  • 官方微信

    欢迎关注永洪服务号!收费为0,价值无限

    扫码关注
  • 新浪微博

    让每位用户轻松挖掘数据价值!

    访问新浪微博
  • 智能客服
1500W

用户等你来哦

Copyright   ©2012-2025  北京永洪商智科技有限公司  (京ICP备12050607) 京公网安备110110802011451号 |《永洪社区协议》
返回顶部