Javascript 正在尝试创建多个隐藏的HTML下拉列表,但失败

Javascript 正在尝试创建多个隐藏的HTML下拉列表,但失败,javascript,jquery,html,html-select,Javascript,Jquery,Html,Html Select,我正在尝试创建一个提交表单,允许我的用户 创建一个资产注册列表,我正在尝试获取 位置字段。但是,用户必须首先选择一个建筑,然后 选择一个楼层,然后最后选择一个房间 我可以将所有位置都包含在一个 元素,但是列表将是巨大而丑陋的。还有房间名 在不同的网站上是相似的,所以最好将它们保存在一个 单独的元素 我希望用户首先从下拉菜单中选择一个建筑。 然后,我想另一个下拉菜单出现在下面,这取决于 关于他们的建筑选择。一旦他们选择了他们的楼层,我会 然后像第三个选择下拉菜单出现,然后会问他们 根据上一次选择中

我正在尝试创建一个提交表单,允许我的用户 创建一个资产注册列表,我正在尝试获取 位置字段。但是,用户必须首先选择一个建筑,然后 选择一个楼层,然后最后选择一个房间

我可以将所有位置都包含在一个 元素,但是列表将是巨大而丑陋的。还有房间名 在不同的网站上是相似的,所以最好将它们保存在一个 单独的元素

我希望用户首先从下拉菜单中选择一个建筑。 然后,我想另一个下拉菜单出现在下面,这取决于 关于他们的建筑选择。一旦他们选择了他们的楼层,我会 然后像第三个选择下拉菜单出现,然后会问他们 根据上一次选择中的选项,再次选择房间 元素

我可以使用if…else函数显示一个隐藏的选择列表 简单地在block/none之间切换,但我似乎不能 使用相同的方法返回以前的值 隐藏选择列表

我已经包含了一些基本代码。我对这方面不是很有经验 所以我刚刚创建了一个简单的if…else语句 计划在我得到这个概念证明后使用switch语句 放下

建筑物总是可见的

楼层已隐藏,只能通过建筑列表显示/隐藏

房间已隐藏,只能按楼层或建筑列表显示/隐藏

如果这还不清楚,我很乐意进一步解释。已经很晚了 我想要一双新的眼睛来看看我的代码

提前感谢,

L


你的函数调用是错误的。将其修复为onchange=sublocCheckthis;它会解决你的问题

第二个问题是locCheck的else语句,显示none应转到id=floor而非id=195

顺便说一句,重新考虑一下你的方法。如果取消选择195,地板下拉列表将隐藏。那么你就不能隐藏房间号码下拉列表了

功能选择{ 如果choice.value==195{ document.getElementByIdfloor.style.display=block; } 否则{ document.getElementByIdfloor.style.display=none; } } 函数子occheckchoice{ 如果choice.value==底层{ document.getElementByIdroom.style.display=block; } 否则{ document.getElementByIdroom.style.display=none; } } 场地* -选择一个站点- 195 123 8. 场外 地板* -选择一个楼层- 一楼 一楼 地下室 房间* -选择一个房间- 1号房间 房间2 3号房间
<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>