You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript实现点击按钮生成联动下拉框及多组数据获取咨询

需求说明

我想要实现以下功能:

  • 用户点击按钮时创建一个新的下拉框
  • 用户从该下拉框选中选项后,将基于选中值创建或更新第二个下拉框

使用场景

项目允许用户指定所用算法,针对不同算法,需要支持用户选择对应参数:用户点击按钮表示要新增一个参数选择项,首先会显示展示所有可选参数的下拉框,用户选中某一参数后,第二个下拉框将展示该参数对应的所有可选值。
需要支持用户按需添加任意多组参数/值对,同时也希望了解后续如何正确获取每一组配对数据。
目前已完成基础框架开发,但还没有完全调通,希望得到帮助。

现有代码

HTML

<div id="banner-message">
  <div>
    <button id="selectParam">New Parameter</button>
  </div>
  <div class="row">
    <div id="newParamName"></div>
    <div id="newParamValue"></div>
  </div>
</div>

JS

document.getElementById('selectParam').onclick = function () {

    // 获取所选算法的参数
    params = getParameters("Algo_A")

    // 获取参数名称列表
    var name = Object.keys(params);

    // 新建参数选择元素,设置name和id属性
    var param = document.createElement("select");
    param.name = "paramName";
    param.id   = "paramName";

    // 为选择框添加所有参数选项
    for (const val of name) {
        var option = document.createElement("option");
        option.value = val;
        option.text  = val;
        param.appendChild(option);
    }

    // 将新创建的参数下拉框添加到页面对应位置
    document.getElementById("newParamName").appendChild(param)
}

// 监听参数选择框的点击事件
document.getElementById('newParamName').onclick = function () {

    // 获取所选算法的参数
    params = getParameters("Algo_A")

    // 获取下拉框选中的参数
    var param = document.getElementById('paramName').value
    // 获取该参数对应的所有可选值
    var values = params[param]

    // 新建参数值选择下拉框,将可选值作为选项加入
    var paramValue = document.createElement("select");
    paramValue.name = "paramValue";
    paramValue.id = "paramValue";

    for (const val of values) {
        var option1 = document.createElement("option");
        option1.value = val;
        option1.text = val;
        paramValue.appendChild(option1);
    }

    // 将参数值选择下拉框添加到页面对应位置
    document.getElementById("newParamValue").appendChild(paramValue)
}

function getParameters(projType) {
    params = {}

    if (projType == 'Algo_A') {
        params.param_a = ['a1', 'a2', 'a3', 'a4']
        params.param_b = ['b1', 'b2', 'b3', 'b4']
        params.param_c = ['c1', 'c2', 'c3', 'c4']
        params.param_d = ['d1', 'd2', 'd3', 'd4']
    }

    return params
}

内容的提问来源于stack exchange,提问作者Kevin Sweeney

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 18:15:03