gpt4 book ai didi

javascript - 如何修复单击按钮打开后立即关闭的模态弹出窗口

转载 作者:太空宇宙 更新时间:2023-11-04 15:46:19 24 4
gpt4 key购买 nike

我正在为我的家庭作业构建网页。我想要模态注册表格,但是当我单击“注册”弹出它时,它会立即关闭。为什么会这样?如何解决?我不想在我的模态上自动关闭。我想在点击其他区域或“x”关闭时关闭它。

我是网络开发的初学者。我不将 Bootstrap 用于模态。

HTML

<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<link rel="stylesheet" type="text/css" href="home.css">
<title>Online Stock Trading</title>
</head>
<body>

<!-- navbar -->
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<a class="navbar-brand" href="#">STOCK</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNavAltMarkup">
<div class="navbar-nav">
<a class="nav-item nav-link active" href="#">Home <span class="sr-only">(current)</span></a>
<a class="nav-item nav-link" href="#">Market Data</a>
<a class="nav-item nav-link" href="#">Trade</a>
</div>
</div>
<form class="form-inline">
<input class="form-control mr-sm-2" type="search" placeholder="Username">
<input class="form-control mr-sm-2" type="search" placeholder="Password">
<button class="btn btn-success my-2 mr-sm-2" id="login">LOGIN</button>
<button class="btn btn-primary my-2 mr-sm-2" id="sign_up">SIGN UP</button>
</form>
</nav>

我的模态代码

    <!-- register form-->
<div class="container" id="modal_content">
<div class="card text-center">
<div class="card-header bg-dark text-white">
<button type="button" class="close" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
Register
</div>
<div class="card-body">
<form class="register-box">
<div class="form-group row">
<label class="col-sm-4 col-form label">Email</label>
<div class="col-sm-6">
<input type="text" class="form-control" placeholder="test@example.com">
</div>
</div>
<div class="form-group row">
<label class="col-sm-4 col-form label">Password</label>
<div class="col-sm-6">
<input type="password" class="form-control" placeholder="Password">
</div>
</div>
<div class="form-group row">
<label class="col-sm-4 col-form label">Confirm Password</label>
<div class="col-sm-6">
<input type="password" class="form-control" placeholder="Confirm Password">
</div>
</div>
<div class="form-group row">
<label class="col-sm-4 col-form label">Name</label>
<div class="col-sm-6">
<input type="text" class="form-control" placeholder="Name">
</div>
</div>
<div class="form-group row">
<label class="col-sm-4 col-form label">Last Name</label>
<div class="col-sm-6">
<input type="text" class="form-control" placeholder="Last Name">
</div>
</div>
<div class="form-group row">
<label class="col-sm-4 col-form label">Phone</label>
<div class="col-sm-6">
<input type="text" class="form-control" placeholder="081-234-XXXX">
</div>
</div>
<div class="form-group row">
<label class="col-sm-4 col-form label">Address</label>
<div class="col-sm-6">
<textarea class="form-control" rows="2"></textarea>
</div>
</div>
<button class="btn btn-success">SUBMIT</button>
</form>
</div>
</div>
</div>

有一个javascript文件

    <!-- script -->
<script type="text/javascript" src="home.js"></script>
</body>
</html>

JavaScript

var modal = document.getElementById('modal_content');
var btn = document.getElementById("sign_up");
var close = document.getElementsByClassName("close");


btn.onclick = function(){
modal.style.display = "block";
}
close.onclick = function(){
modal.style.display = "none";
}
window.onclick = function(event) {
if (event.target == modal) {
modal.style.display = "none";
}
}

CSS

#modal_content{
width: 40%;
height: auto;
margin-top: 3%;
display: none;
z-index: 1;
overflow: auto;
}

我希望模态注册表不会自动关闭。

最佳答案

在按钮 onclick 函数中使用 preventDefault() -

btn.onclick = function(e){
e.preventDefault();
modal.style.display = "block";
}

var modal = document.getElementById('modal_content');
var btn = document.getElementById("sign_up");
var close = document.getElementById("close");


btn.onclick = function(e){
e.preventDefault();
modal.style.display = "block";
}
close.onclick = function(){
modal.style.display = "none";
}
window.onclick = function() {
if (event.target == modal) {
modal.style.display = "none";
}
}
#modal_content {
display: none;
}
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<title>Online Stock Trading</title>
</head>
<body>

<!-- navbar -->
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<a class="navbar-brand" href="#">STOCK</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNavAltMarkup">
<div class="navbar-nav">
<a class="nav-item nav-link active" href="#">Home <span class="sr-only">(current)</span></a>
<a class="nav-item nav-link" href="#">Market Data</a>
<a class="nav-item nav-link" href="#">Trade</a>
</div>
</div>
<form class="form-inline">
<input class="form-control mr-sm-2" type="search" placeholder="Username">
<input class="form-control mr-sm-2" type="search" placeholder="Password">
<button class="btn btn-success my-2 mr-sm-2" id="login">LOGIN</button>
<button class="btn btn-primary my-2 mr-sm-2" id="sign_up">SIGN UP</button>
</form>
</nav>

<!-- register form-->
<div class="container" id="modal_content">
<div class="card text-center">
<div class="card-header bg-dark text-white">
<button type="button" id="close" class="close" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
Register
</div>
<div class="card-body">
...
</div>
</div>
</div>
</body>
</html>

关于javascript - 如何修复单击按钮打开后立即关闭的模态弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55473826/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com