效果图如下

以下是核心代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>弹出 HTML 窗体示例</title>
<style>
/* 隐藏默认的模态对话框 */
#modal {
display: none;
position: fixed;
z-index: 1;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0, 0, 0, 0.4);
}
/* 模态对话框的内容 */
#modal-content {
background-color: #fefefe;
margin: 15% auto;
padding: 20px;
border: 1px solid #888;
width: 80%;
max-width: 500px;
text-align: center;
}
/* 关闭按钮样式 */
#close {
color: #aaa;
float: right;
font-size: 28px;
font-weight: bold;
margin-top: -20px;
margin-right: -10px;
}
#close:hover,
#close:focus {
color: black;
text-decoration: none;
cursor: pointer;
}
</style>
</head>
<body>
<button onclick="openModal()">打开弹出窗体</button>
<!-- 模态对话框 -->
<div id="modal">
<div id="modal-content">
<span id="close">×</span>
<h4>请留下您的邮箱,我们将在2小时内将文件发给您的邮箱</h4>
<form id="myForm">
<label for="email">邮箱:</label>
<input type="email" id="email" name="email" required><br>
<input type="submit" style="margin-top:10px;padding:10px 20px" value="提交">
</form>
</div>
</div>
<script>
function openModal() {
document.getElementById('modal').style.display = 'block';
}
document.getElementById('close').addEventListener('click', function () {
document.getElementById('modal').style.display = 'none';
});
//点击窗体以外部分关闭窗体
window.onclick = function (event) {
if (event.target === document.getElementById('modal')) {
document.getElementById('modal').style.display = 'none';
}
};
const form = document.getElementById('myForm');
form.addEventListener('submit', function (event) {
// 阻止表单的默认提交行为
event.preventDefault();
const formData = new FormData(form);
// 创建一个新的 XMLHttpRequest 对象
const xhr = new XMLHttpRequest();
// 初始化一个 POST 请求
xhr.open('POST', 'https://www.luofenming.com/api/test', true);
// 监听请求状态变化
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
// 请求成功,打印响应结果
console.log('请求成功:', xhr.responseText);
} else {
// 请求失败,打印错误信息
console.error('请求失败,状态码:', xhr.status);
}
}
};
// 发送表单数据
xhr.send(formData);
});
</script>
</body>
</html>本文来自www.luofenming.com