为什么需要表单:为了收集用户信息。
在网页中,我们也需要跟用户进行交互,收集用户资料,此时就需要表单。
表单的组成
在HTML 中,一个完整的表单通常由 表单域、表单控件(也称为表单元素) 和提示信息 3个部分构成。
表单域
表单域是一个包含表单元素的区域
在HTML 中,< form>标签用于定义表单域,一实现用户信息的收集和传递。
< form>会把它范围内的表单元素信息提交给服务器
<form action="url地址" method="提交方式" name="表单域名称">
各种表单元素控件
</form>
常用属性:
| 属性 | 属性值 | 作用 |
|---|---|---|
| action | url地址 | 用于指定接收并处理表单数据的服务器程序的url地址 |
| method | get/post | 用于设置表单数据的提交方式,其取值为get或post |
| name | 名称 | 用于指定表单的名称,以区别同一个页面中的多个表单域 |
表单控件(表单元素)
在表单域中可以定义各种表单元素,这些表单元素就是允许用户在表单中输入或者选择的内容控件。
在表单元素中 < input> 标签用于收集用户信息。
在 < input> 标签中,包含一个type属性,根据不同的type属性值,输入字段拥有很多种形式(可以是文本字段、复选框、掩码后的文本控件、单选按钮、按钮等)。
<input type="属性值" />
- < input />标签为单标签
- type属性设置不同的属性值用来指定不同的控件类型
< input>表单元素
type属性的属性值及其描述如下:
| 属性值 | 描述 |
|---|---|
| button | 定义可点击按钮(多数情况下,用于通过JavaScript启动脚本) |
| checkbox | 定义复选框 |
| file | 定义输入字段和“浏览”按钮,供文件上传 |
| hldden | 定义隐藏的输入字段 |
| image | 定义图片形式的提交按钮 |
| password | 密码框:定义密码字段,改字段中的字符被掩码 |
| radio | 定义单选按钮 |
| reset | 定义重置按钮,重置按钮会清除表单中的所有数据 |
| submit | 定义提交按钮,提交按钮会把表单数据发送到服务器 |
| text | 文本框 :定义单行的输入字段,用户可在其中输入文本,默认宽度为20个字符 |
<form action="xxx.php" method="get"
用户名:<input type="tetx"> <br>
密 码:<input type="password"> <br>
性 别:男<input type="radio"> 女<input type="radion"> <br>
爱 好:吃饭<input type="checkbox"> 睡觉<input type="checkbox"> 打豆豆<input type="checkbox"><br>
<input type="submit" value="免费注册">
<input type="reset" value="重新设置">
<input type="button" value="获取短信验证码"><br>
<input type="file"> <br>
</form>
- 普通按钮button 后期需要结合 js 搭配使用
- file属性:文件域,使用场景 上传文件
除type属性外,< input>标签还有其他很多属性,其常用属性如下:
| 属性 | 属性值 | 描述 |
|---|---|---|
| name | 由用户自定义 | 定义input元素名称 |
| value | 由用户自定义 | 规定input元素的值 |
| checked | checked | 规定此input元素首次加载时应当被选中 |
| maxlength | 正整数 | 规定输入字段中的字符的最大长度 |
- name 是表单元素名字,这里性别单选按钮必须有相同的名字name 才可以实现多选1
用户名:<input type="tetx" name="username"> <br>
密 码:<input type="pwd" name="password"> <br>
性 别:男<input type="radio" name="sex"> 女<input type="radion" name="sex"> <br>
爱 好:吃饭<input type="checkbox" name="hobby"> 睡觉<input type="checkbox" name="hobby"> 打豆豆<input type="checkbox" name="hobby"><br>
- value表单默认的值
用户名:<input type="tetx" name="username" value="请输入用户名"> <br>
密 码:<input type="pwd" name="password" value="请输入密码"> <br>
性 别:男<input type="radio" name="sex" value="男"> 女<input type="radion" name="sex" value="女"> <br>
爱 好:吃饭<input type="checkbox" name="hobby" value="吃饭" > 睡觉<input type="checkbox" name="hobby" value="睡觉"> 打豆豆<input type="checkbox" name="hobby" value="打豆豆"><br>
- checked属性:单选按钮和复选框可以设置checked属性,当页面打开的时候就可以默认选中这个按钮。
性 别:男<input type="radio" name="sex" value="男" checked="checked"> 女<input type="radion" name="sex" value="女"> <br>
爱 好:吃饭<input type="checkbox" name="hobby" value="吃饭" > 睡觉<input type="checkbox" name="hobby" value="睡觉"checked="checked"> 打豆豆<input type="checkbox" name="hobby" value="打豆豆" checked="checked"><br>
- maxlength属性:规定输入字段中的字符的最大长度
用户名:<input type="tetx" name="username" value="请输入用户名" maxlength="6"> <br>
密 码:<input type="pwd" name="password" value="请输入密码" maxlength="6"> <br>
- name和value是每个表单元素都有的属性值主要给后台人员使用
- name 表单元素的名字,要求 单选按钮和复选框要有相同的name值
- checked属性主要针对于单选按钮和复选框,主要作用一打开页面就可以默认选中某个表单元素
- maxlength 是用户可以在表单元素输入的最大字符数,一般较少使用。
< label>标签
< label>标签为input元素定义标注(标签)。
< label>标签用于绑定一个表单元素,当点击< label>标签内的文本是,浏览器就会自动将焦点(光标)转到或者选择相对应的表单元素上,用来增加用户体验。
语法:
<label for="sex">男</label>
<input type="radio" name="sex" id="sex" />
- < label>标签的for属性应当与相关元素的id属性相同
<label for="text">用户名</label>
<input type="text" id="text" >
<input type="radio" id="nan" name="sex"> <label for="nan">男</label>
<input type="radio" id="nv" name="sex"> <label for="nv">女</label>
< select >下拉表单元素
在页面中,如果有多个选项让用户选择,并且想要节约页面空间时,我们可以使用< select >标签控件定义下拉列表
语法:
<select>
<option>选项1</option>
<option>选项2</option>
<option>选项3</option>
<option>选项4</option>
...
</select>
- < select >中至少包含一对< option>
- 在< option>中定义 selected = “selected” 时,当前项即为默认选中项
<form>
籍贯:
<select>
<option>广东</option>
<option>湖南</option>
<option>上海</option>
<option selected="selected">深圳</option>
</select>
</form>
< textarea>文本域元素
当用户输入内容较多的情况下,我们就不能使用文本框表单了,此时我们可以使用 < textarea> 标签。
在表单元素中, < textarea> 标签是用于定义多行文本输入的控件。
使用多行文本输入控件,可以输入更多的文字,该控件常用于留言板,评论。
语法:
<textarea rows="3" cols="20">
文本内容
</textarea>
- 通过< textarea>标签可以轻松地创建多行文本输入框
- cols=“ 每行中的字符数” , rows="显示的行数",我们在实际开发中不会使用,都是用CSS来改写大小