制作弹出式注册表

问题描述 投票:0回答:2

我试图在点击我的注册按钮时创建一个弹出式 regestratin 表单,但似乎找不到可靠的教程......如果有人可以帮助我制作基本的弹出式窗口,甚至是一个模板,我将非常感激。我假设我将不得不以某种身份使用 jquery,但真的不知道从哪里开始。

const username = document.getElementById('Username')
const password = document.getElementById('Password')
const form = document.getElementById('Form')
const errorElement = document.getElementById('error')

form.addEventListener ('submit', (e) => {
    let messages = []
    if(username.value === '' || username.value == null){
        messages.push('usename is required')
    }
    if (password.value.length <= 6){
        messages.push('Password must be longer than 6 characters')
    }
    if (password.value.length >= 20){
        messages.push('Password is too long')
    }
    if(password.value == 'password'){
        messages.push('Password cannot be password')
    }
    if (messages.length > 0){
        e.preventDefault()
        errorElement.innterText = messages.join(' , ')
    }
})
.main {
  padding: 0px 10px;
  width: 100%; /* Add this here */
}
body {
    font-family: "Lato", sans-serif;
}

.main-head {
    height: 150px;
    background: #FFF;
}

.sidenav {
    height: 100%;
    background-color: #000;
    overflow-x: hidden;
    padding-top: 20px;
    width: 100%;
}

.main {
    padding: 0px 10px;
}

@media screen and (max-height: 450px) {
    .sidenav {
        padding-top: 15px;
    }
}

@media screen and (max-width: 450px) {
    .login-form {
        margin-top: 10%;
    }

    .register-form {
        margin-top: 10%;
    }
}

@media screen and (min-width: 768px) {
    .sidenav {
        position: fixed;
        z-index: 1;
        top: 0;
        left: 0;
    }

    .login-form {
        margin-top: 80%;
    }

    .register-form {
        margin-top: 20%;
    }
}

.login-main-text {
    margin-top: 20%;
    padding: 60px;
    color: #fff;
}

.login-main-text h2 {
    font-weight: 300;
}

.btn-black {
    background-color: #000 !important;
    color: #fff;
}

.login-form {
  margin-top: 20%;
  padding: 20px;
}

.form-group {
  margin-bottom: 20px;
}

.btn {
  margin-top: 20px;
}
<!DOCTYPE HTML>
<html lang="en">
<head>
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<link href="sitestyle.css" rel="stylesheet" type="text/css">
<script src="sitescript.js"></script>
    <title>Chartcell</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<div class="sidenav">
    <div class="login-main-text">
        <h2>Chartcel <br> Login Page </h2>
        <p>Login or register from here to upload your desired spreadsheet.</p>
    </div>
    <div class="main">
        <div class="col-md-6 col-sm-12">
            <div class="login-form">
                <form>
                    <div class="form-group">
                        <label>Username </label>
                        <input type="text" class="form-control" placeholder="Username">
                    </div>
                    <div class="form-group">
                        <label>Password</label>
                        <input type="password" class="form-control" placeholder="Password">
                    </div>
                    <button type="submit" class="btn btn-black">Login</button>
                    <button type="submit" class="btn btn-secondary"> Register</button>
                </form>
            </div>
        </div>
    </div>

javascript html css
2个回答
0
投票

开始的一个简单方法是查看 mozilla 文档 并搜索对话框弹出窗口。

但是举一个简单的例子并做一些解释:

<button onclick="showPopup()">show popup</button>
<div style="display: none;" id="popupbox"> I am a popup </div>

<script> 
  function showPopup() {
    document.getElementById("popupbox").style.display = "block"
  }
</script>

按钮触发函数showPopup()。此函数会将弹出框 div 的显示状态更改为块。这使得 onload 不可见的 div 可见。

本例为纯HTML CSS JS。这个简单的例子不需要 Jquery。这个例子也只制作了一个 onload 不可见元素,在按钮点击时可见。因此,您可能可以摆弄它并设法显示/隐藏它并在其上制作表格以进行注册。您可以使用 bootstrap 之类的 css 或自己制作的 css 将其放置在其他内容之上,使其看起来也不错。即使它没有以这种方式显示,如果你将它设置为中心屏幕弹出窗口,它也不应该干扰它后面的任何东西。

希望这有帮助。


0
投票

我建议您查看引导模式。

我看到你已经在使用 bootstrap(因为你有它作为一个 css)。它有很多有用的功能,是最常用的库之一。

要制作“弹出式”(模态)窗口,请查看此链接

PS:Bootstrap 也有很好的文档,并且已经在 SO 上问了很多东西,所以你可能会很快找到答案。

链接页面的示例:

<!-- Button trigger modal -->
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#exampleModal">
  Launch demo modal
</button>

<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
      </div>
      <div class="modal-body">
        ...
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Save changes</button>
      </div>
    </div>
  </div>
</div>

这里真正重要的是按钮中的

data-bs-toggle
属性(它告诉引导程序要显示哪个模式窗口(您可以有多个窗口/模式))。
data-bs-toggle
必须等于模态的 id。

© www.soinside.com 2019 - 2024. All rights reserved.