幼儿园前端 #10:表单进阶(下) —— 必填?邮箱?勾选?一行代码立规矩!

0 阅读2分钟

前言: 大家好,我是[小奇腾]。欢迎来到 “幼儿园前端” 第 10 集! 上一集我们做出了登录框的“样子”,但它是个“傻白甜”——你不填密码它让你过,你填个乱七八糟的邮箱它也让你过。 今天我们要给表单加点**“智商”**。 不需要写复杂的 JS 代码,只需要在 HTML 标签里加几个单词,浏览器就能自动帮你拦截不听话的用户!

本期详细的视频教程bilibili:幼儿园前端 #10:表单进阶(下) —— 必填?邮箱?勾选?一行代码立规矩!

一、 最强保安:required (必填)

这是表单里最实用的属性,没有之一。 它的作用是: “你不填满,就不准提交!”

写法:只需要在 <input> 标签里添加 required 这个单词

<input type="text" name="username" required>

效果:如果你留空并点击提交按钮,浏览器会弹出一个提示框(气泡):“请填写此字段”。如果系统语言设置是英文就显示英文。

注意:这个验证是当用户点击提交的时候才会触发

二、 格式专家:type="email"

之前我们都用 type="text",用户可以在里面填“哈哈哈哈”。 但如果你要用户填邮箱,怎么办?

HTML5 自带验证:type="text" 改成 type="email"

<label>
    邮箱:<input type="email" name="user_email" required>
</label>

效果

  1. 手机端键盘变了:手机会自动弹出带 @ 符号的专用键盘。
  2. 自动检查:如果用户填了“12345”这种不像邮箱的东西,点击提交时,浏览器会报错:“请在邮箱地址中包含 @ 符号”。

同理还有

  • type="number":只能输数字。(带有增减器)
  • type="tel":调出手机号键盘。(只在手机端生效)
  • type="date":直接弹出一个日历选择器!📅

三、 勾选框:type="checkbox"

登录页通常还有个**“记住我”或者“同意用户协议”**的功能。 这种“是/否”的选择,我们用 复选框 (Checkbox)

如果你想让它一打开页面就是打钩的状态,加个 checked 单词。

<label> <input type="checkbox" name="agree" checked> 我已阅读并同意协议 </label>

四、 动手实战:做一个“智能”登录框

打开 VS Code,新建 10-form-pro.html。 这次我们要把“保安”和“勾选框”全都用上!

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>智能登录框</title>
</head>
<body>

    <h1>用户登录 (Pro版)</h1>

    <form action="#">
        
        <div style="margin-bottom: 15px;">
            <label>
                邮箱:
                <input type="email" name="email" placeholder="请输入邮箱" required>
            </label>
        </div>

        <div style="margin-bottom: 15px;">
            <label>
                密码:
                <input type="password" name="password" required>
            </label>
        </div>

        <div style="margin-bottom: 20px;">
            <label>
                <input type="checkbox" name="remember" checked> 
                下次自动登录
            </label>
        </div>

        <button type="submit">登录</button>
        
    </form>

</body>
</html>

五、 亲自测试(找茬环节)

请大家在 Live Server 里狠狠地“折磨”这个表单:

  1. 什么都不填,直接点登录 -> ❌ 被 required 拦住了吗?
  2. 邮箱栏填“张三”,点登录 -> ❌ 被 type="email" 拦住了吗?
  3. 填好邮箱和密码,点登录 -> ✅ 地址栏出现数据了吗?

能通过这三关,你的表单才算合格!