帮我写一个html页面: 页面是左右布局,输入框按钮等靠右边; 页面需要自适应,能够适应pc页面手机页面; 标签名称为文件实验室/账号登录; 两个input框,一个显示输入接收验证码的邮箱在他的右边有一个按钮名称为获取验证码, 第二个input输入框显示输入验证码,他的下方是一个登录按钮; 然后使用ajax技术,将获取到的邮箱账号使用post发送到/admin/等待后端发送验证码,获取验证码的按钮点击后显示60秒后再试期间按钮不能触发; 用户填入验证码后使用post发送到/response/等待后端验证,后端验证通过后跳转到https://www.spacexs.cn,失败则要求重新输入; 字体使用楷体,页面语言是简体中文, 要求点击获取验证码后,按钮文本显示为60秒后再试期间禁用按钮 使用ajax发送请求
时间: 2023-12-06 12:39:56 浏览: 67
三个制作精美的PC端登录页面
5星 · 资源好评率100%
以下是一个简单的示例代码,可以实现你的需求:
```html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>文件实验室/账号登录</title>
<style>
/* 设置页面布局 */
body {
font-family: KaiTi, sans-serif;
margin: 0;
padding: 0;
}
.container {
display: flex;
flex-direction: row;
height: 100vh;
}
.left {
flex-grow: 1;
background-color: #eee;
}
.right {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
flex-grow: 1;
}
.form {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 80%;
max-width: 400px;
}
/* 设置输入框和按钮样式 */
input[type="email"],
input[type="text"] {
padding: 8px;
margin-bottom: 16px;
border-radius: 4px;
border: none;
}
input[type="submit"] {
padding: 8px 16px;
background-color: #4285F4;
color: #fff;
border-radius: 4px;
border: none;
cursor: pointer;
transition: background-color 0.2s ease-in-out;
}
input[type="submit"]:hover {
background-color: #3367D6;
}
input[type="submit"]:disabled {
background-color: #ccc;
cursor: not-allowed;
}
/* 设置响应消息样式 */
.message {
margin-top: 16px;
padding: 8px;
background-color: #eee;
border-radius: 4px;
border: 1px solid #ccc;
}
</style>
</head>
<body>
<div class="container">
<div class="left"></div>
<div class="right">
<form class="form" id="login-form">
<input type="email" id="email" name="email" placeholder="请输入您的邮箱地址" required>
<div>
<input type="text" id="captcha" name="captcha" placeholder="请输入验证码" required>
<input type="button" id="get-captcha" value="获取验证码">
</div>
<input type="submit" id="login" value="登录" disabled>
<div id="message" class="message" style="display:none;"></div>
</form>
</div>
</div>
<script>
// 获取元素
const emailInput = document.getElementById('email');
const captchaInput = document.getElementById('captcha');
const getCaptchaButton = document.getElementById('get-captcha');
const loginButton = document.getElementById('login');
const messageElement = document.getElementById('message');
// 倒计时
let countdown = 60;
let timer;
function startCountdown() {
getCaptchaButton.disabled = true;
getCaptchaButton.value = `${countdown}秒后再试`;
timer = setInterval(() => {
countdown--;
if (countdown <= 0) {
clearInterval(timer);
getCaptchaButton.disabled = false;
getCaptchaButton.value = '获取验证码';
countdown = 60;
} else {
getCaptchaButton.value = `${countdown}秒后再试`;
}
}, 1000);
}
// 绑定事件
getCaptchaButton.addEventListener('click', () => {
startCountdown();
// 发送请求
const email = emailInput.value;
if (email) {
fetch('/admin/', {
method: 'POST',
body: JSON.stringify({ email }),
headers: {
'Content-Type': 'application/json',
},
})
.then(response => response.json())
.then(data => {
if (data.success) {
messageElement.textContent = '验证码已发送,请注意查收邮件。';
messageElement.style.display = 'block';
} else {
messageElement.textContent = '发送验证码失败,请重新尝试。';
messageElement.style.display = 'block';
}
})
.catch(error => {
messageElement.textContent = '发送验证码失败,请检查网络连接。';
messageElement.style.display = 'block';
});
}
});
loginButton.addEventListener('click', () => {
// 发送请求
const email = emailInput.value;
const captcha = captchaInput.value;
if (email && captcha) {
fetch('/response/', {
method: 'POST',
body: JSON.stringify({ email, captcha }),
headers: {
'Content-Type': 'application/json',
},
})
.then(response => response.json())
.then(data => {
if (data.success) {
window.location.href = 'https://www.spacexs.cn';
} else {
messageElement.textContent = '验证码错误,请重新输入。';
messageElement.style.display = 'block';
}
})
.catch(error => {
messageElement.textContent = '登录失败,请检查网络连接。';
messageElement.style.display = 'block';
});
}
});
// 监听输入框
emailInput.addEventListener('input', () => {
if (emailInput.checkValidity()) {
getCaptchaButton.disabled = false;
} else {
getCaptchaButton.disabled = true;
}
loginButton.disabled = true;
});
captchaInput.addEventListener('input', () => {
if (captchaInput.checkValidity()) {
loginButton.disabled = false;
} else {
loginButton.disabled = true;
}
});
</script>
</body>
</html>
```
需要注意的是,该示例代码使用了 Fetch API 发送请求,使用了 JSON 格式传递数据。如果你需要与后端使用其他格式进行通信,需要相应地修改代码。同时,这只是一个简单的示例,实际应用中可能需要更复杂的逻辑和样式。
阅读全文