返回

如何正确地为两个表单(注册和登录表单)编写javaScript切换隐藏/显示函数,而无需刷新页面或链接到新的html

发布时间:2022-04-11 18:34:00 397
# css# html

我问了所有类似的问题,但似乎没有一个能帮助我做我想做的事情。也许我只是错过了一些东西,如果有一个问题可以帮助你,请你指出我的问题,我会删除这个。不管怎样。。。我试图创建一个函数,当我点击登录表单底部的链接(需要帐户?注册)时,它将隐藏登录表单,并显示注册表单底部的链接(拥有帐户?登录),以返回登录表单,而不刷新页面或进入新的html页面。我试过很多东西。。。我希望它看起来像这样。。。我已将注册表的显示设置为“无”,并将登录表单的显示设置为“阻止”。登录到注册并返回的示例

这是我尝试过的两种代码。

一个看似正确但却是错误的例子:




function showAndHide() {
   const loginBtn = document.getElementById('loginbtn');
   const signupBtn = document.getElementById('signupbtn');
   const regForm = document.getElementById('register');
   const logForm = document.getElementById('login');
   if (regForm.style.display == 'none') {
       regForm.style.display = 'block';
       logForm.style.display = 'none';
   } else {
       logForm.style.display = 'block';
       regForm.style.display = 'none';
}
loginBtn.addEventListener('onclick', function() {
showAndHide(loginBtn);
});
signupBtn.addEventListener('onclick', function() {
showAndHide(signupBtn);
});    



第二个例子似乎是对的,但却是错的:




function showAndHide() {
  const regForm = document.getElementById('register');
  const logForm = document.getElementById('login');
  if (regForm.style.display = 'none') {
      regForm.style.display = 'block';
      logForm.style.display = 'none';
  } else { 
      logForm.style.display = 'none';
      regForm.style.display = 'block';
  }
}    



我的Html:



 <body>
<section id="login">
    <h2>Login</h2>
    <form id="login-form" method="post" novalidate>
        <div>
            <label for="logfield">Email:</label>
            <input type="email" name="logfield" id="logfield" required>
        </div>
        <div>
            <label for="pw">Password:</label>
            <input type="password" name="pw" id="pw" size="15" required>
        </div>
        <div>
           <button type="submit">LOGIN</button>
        </div>
        <div>
            <a href="" id="signupbtn">Need an account? Register</a>
        </div>
    </form>
</section>
<section id="register">
    <h2>Register</h2>
    <form id="register-form" method="post" no validate>
        <div>
            <label for="email-field2">Email:</label>
            <input type="email" name="email-field2" id="email-field2" required>
        </div>
        <div>
            <label for="pw2">Password:</label>
            <input type="password" name="pw2" id="pw2" size="15" required>
        </div>
        <div>
            <label for="pw3">Repeat Password:</label>
            <input type="password" name="pw3" id="pw3" size="15" required>
        </div>
        <div>
            <button type="submit">REGISTER</button>
        </div>
        <div>
            <a href="" id="loginbtn">Have an account? Log in</a>
        </div>
    </form>
</section>
</body>    

 
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像