HTML 表单元素入门:input、select 与常用控件
注册账号、搜索商品、提交订单——网页上所有需要用户输入的地方都离不开表单。这篇带你认识 HTML 表单的核心元素,看懂一个完整的输入界面是怎么搭起来的。
form:表单的容器
所有表单控件都要放在 <form> 里,它负责决定"收集完的数据提交到哪":
<form action="/submit" method="post">
<!-- 各种控件写在这里 -->
</form>
action 指定提交地址,method 常用 get(获取数据)和 post(提交数据)两种。单独的 input 放在 form 外面也能显示,但按回车就没有提交行为了。
input:最百变的控件
<input> 是表单里出场率最高的元素,靠 type 属性变换成各种形态:
<form>
<input type="text" name="username" placeholder="请输入用户名">
<input type="password" name="pwd" placeholder="请输入密码">
<input type="number" name="age" min="1" max="120">
<input type="checkbox" name="agree" id="agree">
<label for="agree">我已阅读并同意用户协议</label>
<input type="radio" name="gender" value="m" id="g1">
<label for="g1">男</label>
<input type="radio" name="gender" value="f" id="g2">
<label for="g2">女</label>
</form>
几个要点:
name是提交给服务器时的字段名,不写 name 的控件,数据不会被提交placeholder是输入框里的灰色提示文字- 同一组单选框要用相同的
name,这样才能做到只能选一个 label的for指向控件的id,点文字也能选中控件,体验更好
select:下拉选择框
选项比较多的时候,用下拉框最省地方:
<select name="city">
<option value="">--请选择城市--</option>
<option value="bj">北京</option>
<option value="sh" selected>上海</option>
<option value="gz">广州</option>
</select>
selected 表示默认选中项;提交时发送的是 value 的值(比如 sh),而不是用户看到的文字,这一点别搞反了。
textarea:多行输入
自我介绍、留言这类内容一行放不下,用 <textarea>:
<textarea name="intro" rows="4" cols="30" placeholder="介绍一下自己吧"></textarea>
rows 和 cols 控制默认可见的行数和列数。注意 textarea 是双标签,初始内容写在标签中间,而不是用 value 属性。
button:触发提交
表单里的按钮默认就是提交按钮:
<form action="/search" method="get">
<input type="text" name="kw" placeholder="搜索关键词">
<button type="submit">搜索</button>
<button type="reset">清空</button>
</form>
type="submit" 提交表单,type="reset" 把所有控件恢复默认值。点了提交,浏览器会把带 name 的控件打包成 kw=xxx 这样的格式发给 action 地址。
小结
这篇认识了表单五件套:form 容器、万能的 input、下拉框 select、多行文本 textarea 和提交按钮 button。记住两个关键点:控件要有 name 才会被提交;单选框靠相同的 name 分组。下一篇我们聊聊常用的 meta 标签和页面头部配置。