效果图如下
以下是核心代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 | <!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