javascript - 如何使用此 Javascript 解决方案在 Web 表单上的 div 之间正确切换?

标签 javascript css function display

我试图在两个 div 之间切换显示。第一个包含现有销售代表的下拉菜单。第二个包含用于添加新销售代表的文本输入字段。我想阻止用户同时看到两个 div。我不希望在首次加载页面时显示任何一个 div。

正常工作:

  1. 一开始两个 div 都不显示。

  2. 此外,当我单击“选择”旁边的单选按钮时,会显示 ID="repIfChoose"的 div。

无法正常工作:

  1. 当我单击“添加”旁边的单选按钮时,ID="repIfAdd"的 div 不显示。

  2. 首次显示 ID="repIfChoose"的 div 后,当我在单选按钮之间切换时没有任何反应(意味着 repIfChoose div 未隐藏且 repIfAdd div 未显示。)

我知道在 JQuery 中可能有更简单的解决方案,但我更愿意用 vanilla Javascript 来完成。有人可以帮我解决上面的两个错误以及您可能注意到的任何其他错误吗?谢谢。

<!DOCTYPE html>
<html>

<head></head>

<body>

  <!--Radio button to switch between choose and add sales representative (choose default)-->
  Choose <input type="radio" onclick="repVisible();" id="chooseInput" name="repRadio">
  <br><br> Add <input type="radio" onclick="repVisible();" id="addInput" name="repRadio">

  <div class="form-group" id="repIfChoose" style="display:none">
    <label>Choose Sales Representative</label>
    <select name="SalesRep">
      <option value="" disabled selected>Choose Sales Representative</option>
      <option value="">Adam</option>
      <option value="">Bill</option>
      <option value="">Carl</option>
    </select>
  </div>

  <div class="form-group" id="repIfAdd" style="display:none">
    <label>Add Sales Representative</label>
    <input type="text" placeholder="e.g. Alex Branson" name="SalesRep">
  </div>

  <script>
    function repVisible() {
      if (document.getElementById('chooseInput').checked) {
        document.getElementById('repIfChoose').style.display = 'block';
        document.getElementById('repifAdd').style.display = 'none';
      }
      if (document.getElementById('addInput').checked) {
        document.getElementByID('repIfChoose').style.display = 'none';
        document.getElementByID('repIfAdd').style.display = 'block';
      }
    }
  </script>

</body>

</html>

最佳答案

您的 getElementById() 有几个大写的 D;此外,您的 ID 名称也存在大小写问题。否则有效:

https://jsfiddle.net/4qswkyLp/

确保在浏览器中使用开发人员控制台来调试代码,对于大多数浏览器,在 PC 上使用 F12 很容易。

关于javascript - 如何使用此 Javascript 解决方案在 Web 表单上的 div 之间正确切换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50069821/

相关文章:

javascript - 从 JSON 数组获取数据并使用 React 中的循环根据数据设置状态

C++ 应该重载函数还是 if 语句就足够了?

postgresql - 调用一个函数,该函数具有分配给它的数值以进行查询

javascript - 如何在 *ngIf 渲染后调用 JavaScript 函数

javascript - 'Sys' 未定义 - Ajax - master 和 contentpages ASP.NET 4.0

javascript - 从 firebase 获取数据后刷新选择器项目

CSS 导航栏在 IE 和 FF 中没有正确排列

css - 背景附件:滚动和背景大小:覆盖不起作用

html - 在移动设备中隐藏视频 div

c++ - 对数组中的每个元素应用一个函数