1. 表单基本结构

<form> 标签用于创建表单,action 指定提交地址,method 指定提交方式(GET/POST)。

演示效果:


1<form action="/submit" method="post"> 2 <label>用户名:<input type="text" name="username"></label><br> 3 <label>密码:<input type="password" name="password"></label><br> 4 <input type="submit" value="提交"> 5</form>

2. 输入框类型

<input> 标签的 type 属性定义输入类型:

text 文本 | password 密码 | email 邮箱 | number 数字 | tel 电话 | url 网址 | date 日期

演示效果:







1<form> 2 <label>文本:<input type="text" name="text"></label><br> 3 <label>密码:<input type="password" name="password"></label><br> 4 <label>邮箱:<input type="email" name="email"></label><br> 5 <label>数字:<input type="number" name="number"></label><br> 6 <label>电话:<input type="tel" name="tel"></label><br> 7 <label>网址:<input type="url" name="url"></label><br> 8 <label>日期:<input type="date" name="date"></label><br> 9</form>

3. 单选和复选

radio 单选按钮:同一组必须设置相同的 name 属性。

checkbox 复选框:可多选,checked 属性设置默认选中。

演示效果:

性别:

爱好:

1<form> 2 <p>性别:</p> 3 <label><input type="radio" name="gender" value="male"> 男</label> 4 <label><input type="radio" name="gender" value="female"> 女</label> 5 <label><input type="radio" name="gender" value="other"> 其他</label> 6 7 <p>爱好:</p> 8 <label><input type="checkbox" name="hobby" value="reading" checked> 阅读</label> 9 <label><input type="checkbox" name="hobby" value="gaming"> 游戏</label> 10 <label><input type="checkbox" name="hobby" value="music"> 音乐</label> 11</form>

4. 下拉选择框

<select> 定义下拉框,<option> 定义选项。

selected 默认选中,disabled 禁用选项,<optgroup> 选项分组。

演示效果:


1<form> 2 <label>城市:</label> 3 <select name="city"> 4 <option value="">请选择</option> 5 <option value="beijing" selected>北京</option> 6 <option value="shanghai">上海</option> 7 <option value="guangzhou">广州</option> 8 <option value="shenzhen">深圳</option> 9 </select> 10 11 <br><br> 12 13 <label>分组下拉:</label> 14 <select name="grouped"> 15 <optgroup label="华北"> 16 <option value="beijing">北京</option> 17 <option value="tianjin">天津</option> 18 </optgroup> 19 <optgroup label="华东"> 20 <option value="shanghai">上海</option> 21 <option value="hangzhou">杭州</option> 22 </optgroup> 23 </select> 24</form>

5. 多行文本 textarea

<textarea> 标签用于多行文本输入。

rows 设置行数,cols 设置列数,resize 控制是否可调整大小。

演示效果:

1<form> 2 <label>留言:</label><br> 3 <textarea name="message" rows="5" cols="30" placeholder="请输入留言内容..."></textarea> 4</form>

6. 输入建议 datalist

<datalist> 标签为 <input> 提供输入建议列表。

用户输入时会显示匹配的选项,但也可以输入自定义内容。

演示效果:
1<form> 2 <label>浏览器:</label> 3 <input type="text" name="browser" list="browsers"> 4 <datalist id="browsers"> 5 <option value="Chrome"> 6 <option value="Firefox"> 7 <option value="Safari"> 8 <option value="Edge"> 9 <option value="Opera"> 10 </datalist> 11</form>

7. 表单分组 fieldset

<fieldset> 标签用于将表单元素分组,<legend> 标签定义分组标题。

演示效果:
个人信息
账户设置
1<form> 2 <fieldset> 3 <legend>个人信息</legend> 4 <label>姓名:<input type="text" name="name"></label><br> 5 <label>邮箱:<input type="email" name="email"></label> 6 </fieldset> 7 8 <fieldset> 9 <legend>账户设置</legend> 10 <label>用户名:<input type="text" name="username"></label><br> 11 <label>密码:<input type="password" name="password"></label> 12 </fieldset> 13</form>

8. 表单验证

HTML5 提供了内置的表单验证功能:

required 必填 | disabled 禁用 | readonly 只读 | pattern 正则验证 | min/max 范围

演示效果:





1<form> 2 <label>必填:<input type="text" name="required" required></label><br> 3 <label>禁用:<input type="text" name="disabled" disabled></label><br> 4 <label>只读:<input type="text" name="readonly" value="不可修改" readonly></label><br> 5 <label>正则(6位数字):<input type="text" name="pattern" pattern="\d{6}"></label><br> 6 <label>范围(1-100):<input type="number" name="range" min="1" max="100"></label><br> 7 <input type="submit" value="提交"> 8</form>
验证属性说明:
属性 说明
required 必填字段
disabled 禁用(不可交互,不提交)
readonly 只读(不可修改,会提交)
pattern 正则表达式验证
min/max 数字范围
minlength/maxlength 文本长度范围
placeholder 输入提示