[英]How to replace a DB with HTML and JavaScript/JQuery to create Dynamic dependent Dropdown Select lists?
[英]Trying but failing to create multiple hidden HTML <select> dropdown lists
我正在尝试创建一个提交表单,该表单将允许我的用户创建资产注册列表,并且试图获取位置字段的输入。 但是,用户必须首先选择建筑物,然后选择地板,然后最后选择房间。
我可以在单个元素中将所有位置都包含为,但是列表将是庞大且丑陋的。 此外,房间名称在各个站点之间相似,因此最好将它们放在单独的元素中。
我希望用户首先从下拉菜单中选择建筑物。 然后,我希望根据建筑物的选择在其下方显示另一个下拉菜单。 一旦他们选择了楼层选择,我便希望出现第三个选择下拉菜单,然后将要求他们提供房间(同样取决于上一个选择元素的选项)。
我可以使用if ... else函数显示一个隐藏的选择列表,并在块/无之间切换,但是我似乎无法利用相同的技术来返回(以前)隐藏的值选择列表。
我已经包含了一些原始代码。 我对javascript不太有经验,所以我刚刚创建了一个简单的if ... else语句-一旦我能将这种概念证明弄清楚,就计划使用switch语句。
<script>
function locCheck(choice) {
if (choice.value == "195"){
document.getElementById("floor").style.display = "block";
}
else {
document.getElementById("195").style.display = "none";
}
}
</script>
<script>
function sublocCheck(choice) {
if (choice.value == "Ground Floor"){
document.getElementById("room").style.display = "block";
}
else {
document.getElementById("room").style.display = "none";
}
}
</script>
</head>
<body>
<div id="building">
<span>site*</span>
<div>
<select onchange='locCheck(this);'>
<option value="">-- Select A Site --</option>
<option value="195">195 </option>
<option value="123">123 </option>
<option value="8">8 </option>
<option value="Off-Site">Off-Site</option>
</select>
</div>
</div>
<div id="floor" style="display: none;">
<span>Floor*</span>
<div>
<select onchange="sublocCheck(sl);">
<option value="">-- Select A Floor --</option>
<option value="Ground Floor"> Ground Floor</option>
<option value="First Floor"> First Floor</option>
<option value="Basement Floor"> Basement Floor</option>
</select>
</div>
</div>
<div id="room" style="display: none;" >
<span>room*</span>
<div>
<select>
<option>-- Select A room --</option>
<option>room1</option>
<option>room2</option>
<option>room3</option>
</select>
</div>
</div>
</body>
建筑物(始终可见)
楼层(已隐藏,只能通过建筑物列表显示/隐藏)
房间(被隐藏,只能按楼层或建筑物列表显示/隐藏)
如果不清楚,我很乐意进一步解释。 已经很晚了,我只想看一眼我的代码。
提前致谢,
大号
您的函数调用错误。 将其修复为onchange="sublocCheck(this);"
它将解决您的问题。
第二个问题是locCheck的else语句,显示内容不应该转到id = floor而不是id = 195
顺便说一句,重新考虑您的方法。 如果取消选择195,则地板下拉菜单将隐藏。 那么您将无法隐藏房号下拉菜单。
<head> <script> function locCheck(choice) { if (choice.value == "195"){ document.getElementById("floor").style.display = "block"; } else { document.getElementById("floor").style.display = "none"; } } </script> <script> function sublocCheck(choice) { if (choice.value == "Ground Floor"){ document.getElementById("room").style.display = "block"; } else { document.getElementById("room").style.display = "none"; } } </script> </head> <body> <div id="building"> <span>site*</span> <div> <select onchange='locCheck(this);'> <option value="">-- Select A Site --</option> <option value="195">195 </option> <option value="123">123 </option> <option value="8">8 </option> <option value="Off-Site">Off-Site</option> </select> </div> </div> <div id="floor" style="display: none;"> <span>Floor*</span> <div> <select onchange="sublocCheck(this);"> <option value="">-- Select A Floor --</option> <option value="Ground Floor"> Ground Floor</option> <option value="First Floor"> First Floor</option> <option value="Basement Floor"> Basement Floor</option> </select> </div> </div> <div id="room" style="display: none;" > <span>room*</span> <div> <select> <option>-- Select A room --</option> <option>room1</option> <option>room2</option> <option>room3</option> </select> </div> </div> </body>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.