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
相关产品推荐
相关产品推荐

