网站和用户「对话」的入口。本单元对应教材单元六(8 学时):表单与 input 元素、其他表单元素、表单验证与正则表达式。 没有表单,注册、登录、搜索、评论都无从谈起——它也是和后端 API 对接的第一道关口(回想 Python Web 课的注册登录接口)。
纸质登记表上「姓名 / 电话 / 日期」每个格子就是 <input>;多选的「兴趣爱好」是 checkbox;下拉的「省份」是 <select>;提交按钮把整张单子交给前台(后端)。name 是字段名,是前后端约定的「格子编号」。
<textarea> 多行、<select><option> 下拉、<label> 关联提升可点性与无障碍。required(必填)、type="email"(格式)、pattern(正则)、min/max。^\d{11}$ = 11 位数字(手机号);^[\w.]+@[\w.]+\.\w+$ ≈ 邮箱。u6/register.html<form action="/api/register" method="post">
<label>手机号 <input name="phone" required
pattern="^\d{11}$" placeholder="11 位手机号"></label>
<label>密码 <input name="pwd" type="password"
required minlength="6"></label>
<label>角色
<select name="role">
<option value="reader">读者</option>
<option value="author">作者</option>
</select>
</label>
<button type="submit">注册</button>
</form>
name 写错或漏写——表单能提交但后端收不到字段。name 是前后端契约,错一个全乱。也提醒:前端验证只是体验,后端必须再验一次(呼应 Python Web 安全课)。pattern="^\d{11}$" 中 ^ 和 $ 各表示什么?少写会怎样?comment.html 书评表单:含昵称、邮箱(type=email)、评分(1-5 number)、书评内容(textarea)、是否匿名(checkbox)、提交按钮;全部加合适的原生验证。^\d{11}$ 等能覆盖多数格式校验。做完点「检查本节」看解析与得分;做错可重做。