javascript - 使用 javascript 的弹出窗口无法正确显示

标签 javascript html css google-chrome popup

我已经使用 html 和 javascript 在弹出窗口中完成了 2 个与网络相关的类和类似元素,但问题是弹出窗口要么根本不显示,要么显示半秒后立即自行关闭。我无法发布整个代码,但这是粗略的代码块(我将脚本放在文件的最底部,在 html 标记之外):

<script type="text/javascript">
	var popup = document.getElementById('popup');
	var btn = document.getElementById('btn_popup');
	var close = document.getElementById('close');

	btn.onclick = function(){
		popup.style.display = "block";
	}
	close.onclick = function(){
		popup.style.display = "none";
	}
</script>
<html>
  <body>
    <div id="titleBar">
		<h2>Title</h2>
		<div>
			<form action="page.php" method="get">
				<input type="text" name="item"> by 
				<select name="search">
					<option value="v1">Value 1</option>
					<option value="v2">Value 2</option>
					<option value="v3">Value 3</option>
				</select>
				<input type="submit" value="SEARCH">
				<button id="btn_popup">Popup Button</button>
			</form>
		</div>
	</div>

	<div id="popup">
		<div id="popup_content">
			<header>
				<span id="close">X</span>
				<p>Popup Form</p><br>
			</header>
			<article>
				<div>
					<form method="POST" action="page.php">
						<input type="text" name="n1" placeholder="N1">
						<input type="text" name="n2" placeholder="N2">
						<input type="text" name="n3" placeholder="N3">
						<input type="text" name="n4" placeholder="N4"><br>
						<select name="list">
							<option value="">Select One</option>
							<?php
								//code to generate options
							?>
						</select><br>
						<input type="submit" value="Click">
					</form>
				</div>
			</article>
		</div>
	</div>
 </body>
</html>

我从其他页面复制了这部分代码,但它们不再适用于此页面,但它们适用于上一页,没有任何问题。我还使用 PHP 在弹出表单中生成下拉列表。在上一页中,弹出窗口正常显示,但在本页中,弹出窗口仅显示半秒钟,然后自行关闭。

有什么办法可以解决这个问题吗?或者至少关于这个问题的任何线索?并且请不要推荐我使用框架(w3 除外,但不是 w3 模态)来解决这个问题。我正在使用最新的 Google Chrome 浏览器查看这些文件,我也尝试过使用 Mozilla,但结果相同。

最佳答案

问题在于:

<form action="page.php" method="get">

单击按钮时会加载 page.php。

原因是按钮标签的默认“类型”是“提交”。

只需添加 type="button":

<button type="button" id="btn_popup">Popup Button</button>

关于javascript - 使用 javascript 的弹出窗口无法正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40832477/

相关文章:

javascript - 为什么这个字符串不会转义?

javascript - 尝试学习 JavaScript,但我的页面没有任何效果

javascript - 文档片段和创建父元素有什么区别?

html - 基于显示宽度的表格列数

jQuery 滚动事件与 CSS 悬停相矛盾

html - 谁能解释为什么这段文字位于 img 下方,而不是旁边?

javascript - 为什么console.log(0123);记录83?

javascript - 未捕获的类型错误 : Function is not a function

javascript - stopPropagation 不适用于嵌套 href 标记

CSS 分页媒体 :last page selector