gpt4 book ai didi

javascript - 根据在另一个下拉列表中选择的内容在下拉列表中显示选项

转载 作者:行者123 更新时间:2023-11-30 17:47:57 25 4
gpt4 key购买 nike

我想根据已在另一个下拉菜单中选择的内容在下拉菜单中显示选项。我在第一个下拉列表中有 16 个选项,所以我想在第二个下拉列表中为第一个中的每个选择显示不同的选项。我想使用 javascript 或 jquery 来做到这一点。

这是我的 html 文件中的第一个下拉列表:

           <div>
<label for="failureReason">Failure Reason:</label> <select
id="failureReason" data-theme="a" data-icon="arrow-d" data-iconpos="right">
<option value="1">Damage</option>
<option value="9">Calibration Failure</option>
<option value="5">Component Failure</option>
<option value="93">Customer Request</option>
<option value="5">Error on Potted SUT</option>
<option value="41">Installation Error</option>
<option value="6">Interference</option>
<option value="46">Network Issue</option>
<option value="3">No Fault Found</option>
<option value="8">No Power/Fuse Blown</option>
<option value="23">Non-AMCS Issue</option>
<option value="49">OBC HW Issue</option>
<option value="30">OBC SW Issue</option>
<option value="2">Training Issue</option>
<option value="68">Truck Not Available</option>
<option value="51">Routine Maintenance</option>
</select>
<!-- Put in options for failure reason -->
</div>

我想根据为“失败原因”选择的内容在此下拉列表中显示不同的选项:

<div>
<label for="solutionId">Solution Id:</label> <select
id="solutionId" data-theme="a" data-icon="arrow-d" data-iconpos="right">
<option value="1">Repaired</option>
<option value="2">Restarted</option>
<option value="3">Reinstalled Software</option>
<option value="4">Replaced Loadcell</option>
<option value="5">Replaced SUT</option>
</select>
<!-- Put in options for Solution Id -->
</div>

我看过其他示例,但与我想要实现的完全不同。我需要能够获得显示和选择用于我的 javascript 文件的其他部分的任何选项的“值”。

编辑:

我意识到我的问题有点令人困惑。我会尽量说得更清楚。如果由于失败原因选择“损坏”,我想显示:

<div>
<label for="solutionId">Solution Id:</label> <select
id="solutionId" data-theme="a" data-icon="arrow-d" data-iconpos="right">
<option value="1">Repaired</option>
<option value="3">Reinstalled Software</option>
<option value="4">Replaced Loadcell</option>
</select>
<!-- Put in options for Solution Id -->
</div>

但是如果选择“校准失败”,我想显示:

<div>
<label for="solutionId">Solution Id:</label> <select
id="solutionId" data-theme="a" data-icon="arrow-d" data-iconpos="right">
<option value="1">Repaired</option>
<option value="2">Restarted</option>
<option value="5">Replaced SUT</option>
</select>
<!-- Put in options for Solution Id -->
</div>

最佳答案

JS fiddle 解决方案:

http://jsfiddle.net/ZjhWV/1/

不是最好的解决方案,但可行。从第一个选择中制作一些文本内容列表,并将它们与第二个选择中的可用选项链接起来。

我使用了第一个中的 textContent 并将其与第二个中的选项值链接起来。但是您可以根据选项的不同属性(id、值、文本内容...)创建链接。

您可以使用 this.options[this.selectedIndex].textContent 从当前选择的选项中获取文本内容。

PS:如果数组为空,所有选项都可用...

JavaScript:

    var subselectContains = {
"Damage": [1, 3, 5],
"Calibration Failure": [],
"Component Failure": [2],
"Customer Request": [],
"Error on Potted SUT": [1],
"Installation Error": [],
"Interference": [],
"Network Issue": [],
"No Fault Found": [],
"No Power/Fuse Blown": [],
"Non-AMCS Issue": [],
"OBC HW Issue": [],
"OBC SW Issue": [],
"Training Issue": [],
"Truck Not Available": [],
"Routine Maintenance": []
};

var failureReson = $("#failureReason");
var solutionOptions = $("#solutionId option");


failureReson.change(function () {
var visibleOptions = subselectContains[this.options[this.selectedIndex].textContent];

if (visibleOptions.length != 0) {
solutionOptions.hide();


solutionOptions.each(function () {
for (var i = 0; i <= visibleOptions.length; i++) {
if (this.value == visibleOptions[i]) {
$(this).show();
}
}
});
} else {
solutionOptions.show();
}
});

编辑:我的解决方案只是一个简短的版本。它仅在您更改第一个选择时有效,并且不会影响当前选择的选项。但我相信你可以自己解决这个问题;)

关于javascript - 根据在另一个下拉列表中选择的内容在下拉列表中显示选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19727725/

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