【发布时间】:2020-06-02 07:12:43
【问题描述】:
代码的目的是让用户从下拉菜单中选择一个数字并显示相应的 div。 div 的出发点始终是全部隐藏。 Javascript 应该使用“用户选择的数字”来决定要显示多少个 div。在这种情况下如下:
下拉值:1 = 显示余额 0
下拉值:2 = 显示余额 0,1
下拉值:3 = 显示余额 0,1,2
下拉值:4 = 显示余额 0,1,2,3
观察:
我怀疑问题在于 javascript 只选择了预定义为“已选择”的选项,这意味着它永远不会将用户选择的值用于进一步处理。
$_POST 的 var_dump 显示正确的结果/打印输出,每次用户从下拉菜单中选择一个选项。
想要的行为:
前端的用户应该能够在 1-4 之间的下拉列表中选择一个值,并且相应的 div(参见上面的列表)应该是可见的。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Show divs based on dropdown</title>
<style>
.balance_0,
.balance_1,
.balance_2,
.balance_3
{
display: none;
}
</style>
</head>
<body>
<!-- Form (Years-selector) -->
<form class="year-selector" method="post">
<select class="dropdown_result" id="dropdown_result" name="selection">
<option value="" selected="selected" hidden="hidden">Select amount of years to report...</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<button type="submit" name="button">Send</button>
</form>
<!-- Divs -->
<div class="balance_0">Balance-0</div>
<div class="balance_1">Balance-1</div>
<div class="balance_2">Balance-2</div>
<div class="balance_3">Balance-3</div>
<pre>
<?php var_dump($_POST); ?>
<script>
// Extract selected dropdown menu option.
var amountOfBalanceColumnsToShow =
document.getElementById("dropdown_result").selectedOptions[0].value;
// Show amount of balance divs based on above form.
if (amountOfBalanceColumnsToShow == 1) {
var x = document.getElementById("balance_0");
x.style.display = "block";
}
else if (amountOfBalanceColumnsToShow == 2) {
for (var i = 0; i <= 1; i++) {
var x = document.getElementById("balance_" + i);
x.style.display = "block";
}
}
else if (amountOfBalanceColumnsToShow == 3) {
for (var i = 0; i <= 2; i++) {
var x = document.getElementById("balance_" + i);
x.style.display = "block";
}
}
else if (amountOfBalanceColumnsToShow == 4) {
for (var i = 0; i <= 3; i++) {
var x = document.getElementById("balance_" + i);
x.style.display = "block";
}
}
</script>
</body>
</html>
【问题讨论】:
标签: javascript html css drop-down-menu