当前位置: 首页 > news >正文

web登录页面

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>简易登录页面</title><style>* {margin: 0;padding: 0;box-sizing: border-box;}body {font-family: Arial, sans-serif;background-color: #f5f5f5;display: flex;justify-content: center;align-items: center;height: 100vh;}.login-container {background-color: white;padding: 40px;border-radius: 8px;box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);width: 100%;max-width: 400px;}h2 {text-align: center;color: #333;margin-bottom: 30px;}.form-group {margin-bottom: 20px;}label {display: block;margin-bottom: 5px;color: #666;}input {width: 100%;padding: 10px;border: 1px solid #ddd;border-radius: 4px;font-size: 16px;}input:focus {outline: none;border-color: #4CAF50;}.error-message {color: #f44336;font-size: 14px;margin-top: 5px;display: none;}.login-btn {width: 100%;padding: 12px;background-color: #4CAF50;color: white;border: none;border-radius: 4px;font-size: 16px;cursor: pointer;transition: background-color 0.3s;}.login-btn:hover {background-color: #45a049;}.login-btn:active {background-color: #3d8b40;}</style>
</head>
<body><div class="login-container"><h2>用户登录</h2><form id="loginForm"><div class="form-group"><label for="username">用户名</label><input type="text" id="username" name="username" placeholder="请输入用户名"><div class="error-message" id="usernameError">请输入用户名</div></div><div class="form-group"><label for="password">密码</label><input type="password" id="password" name="password" placeholder="请输入密码"><div class="error-message" id="passwordError">请输入密码</div></div><button type="submit" class="login-btn">登录</button></form></div><script>// 模拟的用户数据const mockUsers = [{ username: 'admin', password: '123456' },{ username: 'user', password: 'password' }];// 获取表单和输入元素const loginForm = document.getElementById('loginForm');const usernameInput = document.getElementById('username');const passwordInput = document.getElementById('password');const usernameError = document.getElementById('usernameError');const passwordError = document.getElementById('passwordError');// 表单提交事件loginForm.addEventListener('submit', function(e) {e.preventDefault();// 重置错误信息usernameError.style.display = 'none';passwordError.style.display = 'none';// 获取输入值const username = usernameInput.value.trim();const password = passwordInput.value.trim();// 验证输入let isValid = true;if (username === '') {usernameError.style.display = 'block';isValid = false;}if (password === '') {passwordError.style.display = 'block';isValid = false;}if (isValid) {// 验证用户const user = mockUsers.find(u => u.username === username && u.password === password);if (user) {alert('登录成功!欢迎 ' + username);// 这里可以重定向到主页或其他页面// window.location.href = 'home.html';} else {alert('用户名或密码错误!');}}});// 输入时隐藏错误信息usernameInput.addEventListener('input', function() {usernameError.style.display = 'none';});passwordInput.addEventListener('input', function() {passwordError.style.display = 'none';});</script>
</body>
</html>

http://www.xdnf.cn/news/1169749.html

相关文章:

  • Elasticsearch Java 8.x 的聚合 API 及子聚合的用法
  • 外网访问内部私有局域网方案,解决运营商只分配内网IP不给公网IP问题
  • iOS加固工具有哪些?从零源码到深度混淆的全景解读
  • DearMom以“新生儿安全系统”重塑婴儿车价值,揽获CBME双项大奖
  • vue2.0 + elementui + i18n:实现多语言功能
  • fuse低代码工作流平台概述【已开源】-自研
  • Java中关于线程池的解析
  • Qt 事件处理机制深入剖析
  • 厌氧菌数据挖掘可行性评估报告
  • 深入理解 Qt 中的 QImage 与 QPixmap:底层机制、差异、优化策略全解析
  • PyQt5在Pycharm上的环境搭建 -- Qt Designer + Pyuic + Pyrcc组合,大幅提升GUI开发效率
  • stm32 智能小车
  • [2025CVPR-小目标检测方向]基于特征信息驱动位置高斯分布估计微小目标检测模型
  • AI视频-剧本篇学习笔记
  • LeetCode 633.平方数之和
  • Leetcode力扣解题记录--第73题(矩阵置零)
  • RabbitMQ-交换机(Exchange)
  • 【大模型记忆实战Demo】基于SpringAIAlibaba通过内存和Redis两种方式实现多轮记忆对话
  • Arraylist与LinkedList区别
  • STM32-SPI全双工同步通信
  • LWIP学习记录2——MAC内核
  • mybatis多对一一对多的关联及拼接操作以及缓存处理
  • 【学习路线】Python全栈开发攻略:从编程入门到AI应用实战
  • Custom SRP - Draw Calls
  • Claude Code Kimi K2 环境配置指南 (Windows/macOS/Ubuntu)
  • python小工具:测内网服务器网速和延迟
  • Qt资源系统:如何有效管理图片和文件
  • Canmv k230 DAC案例——TLV5638
  • 104.二叉树的最大深度
  • API是什么,如何保障API安全?