gpt4 book ai didi

javascript - 1 父 2 子下拉

转载 作者:行者123 更新时间:2023-11-30 06:09:37 28 4
gpt4 key购买 nike

我正在尝试使用 JAVASCRIPT 创建 1 个父下拉列表,它有 2 个从属子下拉列表。

我的 html 页面位于 - http://www.larkgrove.com/entryform/entryform.html

我正在使用动态选项列表/相关选择: http://www.javascripttoolbox.com/lib/dynamicoptionlist/examples.php

如果您查看我的网站,您会发现我可以让子列表在“无”和“NULL”之间进行更改,但这就是我所能做的。

谢谢!

最佳答案

我知道您正在使用动态选项脚本,但我想我会提供一个从头开始的快速解决方案。代码有点冗长,但我希望这样可以更容易地了解发生了什么。最终工作页面在这里:http://ryanscook.com/Files/DropDownListTest.htm

让我们首先假设您有这个 html:

<select id="parentList" onchange="parentList_OnChange(this)">
<option>Choose an option</option>
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
</select>

<select id="childList1"></select>
<select id="childList2"></select>

您会注意到我们有一个 onchange 处理程序,这是 java 脚本:

// Data for child list 1, this is a of the parent value to one or more options
var childList1Data = {
"A": ["ChildList1 - A1", "ChildList1 - A2", "ChildList1 - A3"],
"B": ["ChildList1 - B1"],
"C": ["ChildList1 - C1", "ChildList1 - C2"],
"D": ["ChildList1 - D1", "ChildList1 - D2"]
};


// Data for child list 2, this is a of the parent value to one or more options
var childList2Data = {
"A": ["ChildList2 - A1", "ChildList2 - A2"],
"B": ["ChildList2 - B1", "ChildList2 - B2", "ChildList2 - B3"],
"C": ["ChildList2 - C1", "ChildList2 - C2"],
"D": ["ChildList2 - D1"]
};


// onchange is called when the parent value is changed
function parentList_OnChange(objParentList) {
var child1 = document.getElementById("childList1");
var child2 = document.getElementById("childList2");

// Remove all options from both child lists
removeOptions(child1);
removeOptions(child2);

// Lookup and get the array of values for child list 1, using the parents selected value
var child1Data = childList1Data[objParentList.options[objParentList.selectedIndex].value];

// Add the options to child list 1
if (child1Data) {
for (var i = 0; i < child1Data.length; i++) {
child1.options[i] = new Option(child1Data[i], child1Data[i]);
}
}


// Do the same for the second list
var child2Data = childList2Data[objParentList.options[objParentList.selectedIndex].value];

if (child2Data) {
for (var i = 0; i < child2Data.length; i++) {
child2.options[i] = new Option(child2Data[i], child2Data[i]);
}
}
}


function removeOptions(objSelect) {
while (objSelect.options.length > 0)
objSelect.options[0] = null;
}

我希望这对您有所帮助,并且与您的问题相距不远。

关于javascript - 1 父 2 子下拉,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/361922/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com