是不是很多零基础学 JS 的朋友都有这种感觉?看了一堆语法教程,变量、函数都懂,可一到实际做网页功能就懵圈?想做个注册表单的验证,输错手机号也能提交;想加个点击弹窗的效果,代码写了半天没反应;更不知道怎么把学过的语法用到真实场景里。其实啊,JS 基础语法不难,难的是不知道怎么在实际场景中用。今天兔子哥就带大家做两个超实用的场景实战 —— 表单验证和弹窗效果,从 HTML 结构到 JS 代码一步步教,零基础也能跟着学会,做完就能用在自己的网页上,一起往下看吧!
一、先搞懂:为啥要学这两个场景?实用又高频!
核心问题:表单验证和弹窗效果在网页里有啥用?学会了能解决啥问题?
这两个功能几乎每个网页都要用,比如:
- 注册账号时,表单验证能帮你检查手机号格式、密码长度,避免输错信息。
- 点击 “查看详情” 时,弹窗效果能显示更多内容,不用跳转新页面。
兔子哥之前带过一个学员小林,她学完基础语法后做个人网站,表单没加验证,结果收到一堆 “123456” 当密码的无效信息,后来加了验证功能,数据一下子规范多了。她说:“原来这些场景实战这么有用,比单纯学语法有意思多了!”
二、实战一:表单验证 —— 让你的表单更 “聪明”
核心问题:表单验证到底要做啥?怎么用 JS 实现手机号、密码的验证?
咱们做一个注册表单,包含用户名、手机号、密码三个字段,实现这些功能:
- 用户名不能为空,提示 “请输入用户名”。
- 手机号必须是 11 位数字,提示 “请输入正确的手机号”。
- 密码至少 6 位,提示 “密码不能少于 6 位”。
步骤 1:搭 HTML 表单架子
先写表单的 HTML 结构,包含输入框和错误提示区域:
html预览
<form id="registerForm"><div class="form-group"><label>用户名:label><input type="text" id="username"><span class="error">span> div><div class="form-group"><label>手机号:label><input type="tel" id="phone"><span class="error">span>div><div class="form-group"><label>密码:label><input type="password" id="password"><span class="error">span>div><button type="button" id="submitBtn">注册button>form>步骤 2:写 JS 验证逻辑
给提交按钮加点击事件,点击时检查每个字段:
javascript运行
// 获取元素const username = document.getElementById("username");const phone = document.getElementById("phone");const password = document.getElementById("password");const submitBtn = document.getElementById("submitBtn");// 提交按钮点击事件submitBtn.onclick = function() {let isOk = true; // 标记是否通过验证// 验证用户名if (username.value.trim() === "") {showError(username, "请输入用户名");isOk = false;} else {clearError(username);}// 验证手机号(11位数字)const phoneReg = /^1[3-9]\d{9}$/; // 手机号正则表达式if (!phoneReg.test(phone.value.trim())) {showError(phone, "请输入正确的手机号");isOk = false;} else {clearError(phone);}// 验证密码(至少6位)if (password.value.length < 6) {showError(password, "密码不能少于6位");isOk = false;} else {clearError(password);}// 全部通过则提示成功if (isOk) {alert("注册成功!");}};// 显示错误提示function showError(input, message) {const errorEl = input.nextElementSibling;errorEl.textContent = message;errorEl.style.color = "red"; // 红色提示}// 清除错误提示function clearError(input) {const errorEl = input.nextElementSibling;errorEl.textContent = "";}步骤 3:优化体验 —— 实时验证
光点击提交时验证不够,加个实时验证,输入时就提示错误:
javascript运行
// 输入时实时验证username.oninput = function() {if (username.value.trim() === "") {showError(username, "请输入用户名");} else {clearError(username);}};phone.oninput = function() {const phoneReg = /^1[3-9]\d{9}$/;if (!phoneReg.test(phone.value.trim())) {showError(phone, "请输入正确的手机号");} else {clearError(phone);}};这样用户边输入边提示,体验好多了!
三、实战二:弹窗效果 —— 让网页交互更丰富
核心问题:弹窗效果怎么实现?点击按钮弹出,点击关闭隐藏?
咱们做一个 “查看详情” 弹窗,点击按钮弹出,显示更多内容,包含关闭功能。
步骤 1:写弹窗的 HTML 和 CSS
先做弹窗的结构和样式,初始隐藏,点击后显示:
html预览
<button id="openBtn">查看详情button><div id="modal" class="modal"><div class="modal-content"><span id="closeBtn" class="close">×span> <h3>产品详情h3><p>这是一款零基础也能学会的JS实战教程,包含表单验证和弹窗效果。p>div>div><style>/* 弹窗样式 */.modal {display: none; /* 初始隐藏 */position: fixed;top: 0;left: 0;width: 100%;height: 100%;background-color: rgba(0,0,0,0.5); /* 半透明背景 */}.modal-content {background-color: white;margin: 15% auto;padding: 20px;width: 70%;border-radius: 5px;}.close {float: right;font-size: 28px;cursor: pointer;}style>步骤 2:用 JS 控制弹窗显示和隐藏
写 JS 代码,点击按钮显示弹窗,点击关闭或背景隐藏弹窗:
javascript运行
// 获取元素const modal = document.getElementById("modal");const openBtn = document.getElementById("openBtn");const closeBtn = document.getElementById("closeBtn");// 打开弹窗openBtn.onclick = function() {modal.style.display = "block"; // 显示弹窗};// 关闭弹窗(点击关闭按钮)closeBtn.onclick = function() {modal.style.display = "none"; // 隐藏弹窗};// 关闭弹窗(点击弹窗外部)window.onclick = function(event) {if (event.target === modal) { // 点击的是半透明背景modal.style.display = "none";}};效果演示
点击 “查看详情” 按钮,弹窗从屏幕中间弹出,显示产品信息;点击右上角 × 或弹窗外部,弹窗关闭 —— 这就是网页常用的弹窗效果!
四、常见问题:新手实战中最容易踩的坑
1. 表单验证没反应?检查按钮类型和事件绑定
很多新手把按钮类型写成
type="submit",点击后会刷新页面,导致验证失效。解决方法:用type="button",或在表单提交事件里加event.preventDefault()阻止刷新。2. 弹窗关不掉?检查关闭按钮的选择器
关闭按钮没反应,大概率是
getElementById的 id 写错了,比如把closeBtn写成closebtn。解决方法:仔细检查 HTML 和 JS 的 id 是否一致。3. 实时验证太频繁?可以加延迟
输入时每输一个字符就验证,可能有点卡顿。解决方法:用
setTimeout加延迟,比如输入停止 500 毫秒后再验证:javascript运行
let timer;username.oninput = function() {clearTimeout(timer); // 清除之前的定时器timer = setTimeout(function() {// 验证逻辑}, 500); // 延迟500毫秒};五、学员反馈:这些实战真的有用!
小林做完这两个实战后说:“原来表单验证和弹窗效果这么简单,之前以为要写几百行代码,没想到核心逻辑就这些。现在我的个人网站有了这两个功能,看起来专业多了!”
另一个学员小张分享:“实时验证的小技巧特别实用,用户体验一下子提升了,朋友都说我的网页比之前好用多了。”
最后说几句实在的
场景化实战是学 JS 最好的方法,比单纯背语法有意思多了。今天的表单验证和弹窗效果,用到了变量、函数、事件绑定、DOM 操作这些基础知识点,把它们串起来就能做出实用功能。
新手刚开始做的时候,别害怕代码报错,多看看控制台的提示,大部分错误都是拼写错了、元素没找到这些小问题。做完后可以自己改改需求,比如给表单加 “确认密码” 验证,给弹窗加动画效果,这样能学得更扎实。
记住,学 JS 的目的是做东西,不是背语法。多做这种场景实战,你会发现自己越来越会用 JS 解决实际问题,网页也能做得越来越专业。动手试试吧,这两个功能学会了,你会收获满满的成就感!
标签: 显示更多 registerForm
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
评论列表
零基础JS实战,表单弹窗轻松学会。