You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript实现登录注册表单切换时标题显示异常问题求助

问题原因梳理

  • 标题与对应表单结构错位:登录标题放在了注册表单上方,注册标题放在了注册表单和登录表单中间,两个标题没有和对应表单绑定,切换表单时没有同步控制标题显隐,直接导致两个标题同时展示、位置偏移
  • HTML语法错误:属性之间错误添加了逗号、属性值末尾多了多余引号,导致浏览器无法正确识别元素ID和样式
  • JS逻辑冗余:函数内多余的onclick = 赋值完全无效,还可能污染全局变量
  • 切换按钮未指定类型:默认会触发表单提交导致页面刷新,切换逻辑失效

修复后完整代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
  <script>
    // 切换到注册表单
    function twofomr() {
      document.getElementById('dibba_lo').style.display = 'none';
      document.getElementById('reg_dibba').style.display = 'block';
    }

    // 切换到登录表单
    function onefomr() {
      document.getElementById('reg_dibba').style.display = 'none';
      document.getElementById('dibba_lo').style.display = 'block';
    }
  </script>
  <style>
    /* 统一表单容器样式,避免切换时位置跳动 */
    .form-container {
      max-width: 600px;
      margin: 30px auto;
      padding: 0 20px;
    }
    .form-container h2 {
      margin-bottom: 20px;
      text-align: center;
    }
  </style>
</head>
<body>
  <nav class="navbar navbar-expand-lg navbar-light bg-light">
    <div class="container-fluid">
      <a class="navbar-brand" href="#">Menu</a>
      <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
      </button>
      <div id="icon">
        <a id="icon" type="image" imgsrc="Save.BMP"></a>
      </div>
      <div class="collapse navbar-collapse" id="navbarNav">
        <ul class="navbar-nav">
          <li class="nav-item">
            <a class="nav-link active" aria-current="page" href="#">Home</a>
          </li>
          <li class="nav-item">
            <a class="nav-link" href="#">Features</a>
          </li>
        </ul>
      </div>
    </div>
  </nav>

  <!-- 注册表单容器,默认显示 -->
  <div id="reg_dibba" class="b_dibba form-container">
    <h2 class="dibbaT">Be a part of NoobSnoop</h2>
    <form action="" class="dibba" id="regform" method="post">
      <div class="mb-3">
        <label class="form-label">What's your name? </label>
        <input type="text" name="name" class="form-control" placeholder="What do they call you?" required/>
      </div>
      <div class="mb-3">
        <label class="form-label">What's your email? </label>
        <input type="email" name="mail" class="form-control" placeholder="What do they call you?" required/>
      </div>
      <div class="mb-3">
        <label class="form-label">Set your password</label>
        <input type="password" name="piss" id="piss" class="form-control" placeholder="Set a password" required/>
      </div>
      <div class="mb-3">
        <label class="form-label">Confirm your password</label>
        <input type="password" name="piss2" id="piss2" class="form-control" placeholder="Confirm your password" required/>
      </div>
      <div class="mb-3">
        <div id="cnfrmpass"></div>
      </div>
      <div class="mb-3">
        <button type="submit" name="sbt" class="btn btn-primary mb-3"> Submit </button>
      </div>
      <div class="mb-3">
        <button type="button" onclick="onefomr()" class="btn btn-primary mb-3"> Login </button>
      </div>
    </form>
  </div>

  <!-- 登录表单容器,默认隐藏 -->
  <div id="dibba_lo" class="m_dibba form-container" style="display: none;">
    <h2 class="dibbaT">Quick get in !</h2>
    <form action="" class="dibba_lo" id="formlogin" method="post">
      <div class="mb-3">
        <label class="form-label">What's your email? </label>
        <input type="email" name="mail" class="form-control" placeholder="What your email address?" required/>
      </div>
      <div class="mb-3">
        <label class="form-label">Enter your password</label>
        <input type="password" name="piss_m" class="form-control" placeholder="Enter your password" required/>
      </div>
      <div class="mb-3">
        <button type="submit" name="btnlog" class="btn btn-primary mb-3"> Take me In </button>
      </div>
      <div class="mb-3">
        <button type="button" onclick="twofomr()" class="btn btn-primary mb-3"> Register </button>
      </div>
    </form>
  </div>
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
</body>
</html>

内容的提问来源于stack exchange,提问作者Aaditya Goenka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 22:06:05