8.1为什么需要表单
使用表单目的是为了收集用户信息
在我们网页中,我们也需要跟用户进行交互、收集用户资料,此时就需要表单
8.2表单的组成
在HTML中,一个完整的表单通常由表单域、表单控件(也称表单元素)和提示信息3部分组成
8.3表单域(了解)
表单域是一个包含表单元素的区域
在HTML标签中,< form>标签用于定义表单域,以实现用户信息的收集和传递
< form>会把它范围内表单元素信息提交给服务器
语法:
<form action="url地址" method="提交方式" name="表单域名称">
各种表单元素控件
</form>
常用属性:
8.4表单控件(表单元素)
在表单域中可以定义各种表单元素,这些表单元素就是允许用户在表单中输入或者选择的内容控件。
8.4.1< input >表单元素
在英文单词中, input是输入的意思,而在表单元素中< input>标签用于收集用户信息。
在< input>标签中,包含一个type属性,根据不同的type属性值,输入字段拥有很多种形式(可以是文本字段、复选框、掩码后的文本控件、单选按钮、按钮等)。
<input type="属性值" />
注意:
●< input />标签为单标签
●type 属性设置不同的属性值用来指定不同的控件类型
type 属性的属性值及其描述如下:
除type属性外,< input>标签还有其他很多属性,其常用属性如下:
补充:
name属性:当前input表单的名字,后台可以通过这个name属性找到这个表单。页面中的表单很多,name的主要作用就是用于区别不同的表单。
注意:
●name和value每个表单元素都有的属性值主要给后台人员使用.
● name 表单元素的名字,要求单选按钮和复选框要有相同的name值
● checked属性主要针对于单选按钮和复选框主要作用一打开页面,就要可以默认选中某个表单元素.
● maxlength 用户可以在表单元素输入的最大字符数,一般较少使用.
如:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form>
<!-- test 文本框 用户可以在里面输入任何文字 -->
<!-- maxlength 规定输入字段中字符的最大长度 -->
用户名:<input type="text" name="username" value="请输入用户名" maxlength="6"><br>
<!-- password 密码框 用户看不见输入的密码 -->
密码:<input type="password" name="pwd"><br>
<!-- radio 单选按钮 可以实现多 -->
<!-- name 是表单元素名字 这里性别单选按钮必须有相同的name 才能实现多选一 -->
性别:男<input type="radio" name="sex" value="男">
女<input type="radio" name="sex" value="女"><br>
<!-- checkbox 复选框 可以实现多选一 -->
爱好:吃饭<input type="checkbox" name="hobby">
打羽毛球<input type="checkbox" name="hobby"> 画画<input type="checkbox"><br>
<!-- checked 单选按钮和复选框可以设置checked属性,当页面打开时可以默认选中这个按钮 -->
我同意注册条款<input type="radio" name="agree" checked="checked"><br>
<!-- submit 提交按钮 把表单域form里面的表单元素里的值提交给后台服务器-->
<input type="submit" value="免费注册"><br>
<!-- reset 重置按钮 还原表单元素初始的默认状态 -->
<input type="reset" value="重新填写"><br>
<!-- button 普通按钮 后期结合JavaScrip 搭配使用 -->
<input type="button" value="获取短信验证码"><br>
<!-- file 文件域 供文件上传 -->
上传头像:<input type="file">
</form>
</body>
</html>
8.4.2< label>标签
< label>标签为input元素定义标注(标签)。
< label>标签用于绑定一个表单元素 当点击
<label for="sex">女</label>
<input type=" radio" name="sex" id="sex" />
核心: < label> 标签的for属性应当与相关元素的id属性相同
如:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<label for="sex">女</label>
<input type="radio" name="sex" id="sex" />
</body>
</html>
这时我们点击“女“字也能选上按钮:
8.4.3 < select >下拉表单元素
在页面中,如果有多个选项让用户选择,且想要节约页面空间时,我们可以使用标签控件定义下拉列表.
语法:
<select>
<option>选项1</option>
<option>选项2</option>
<option>选项3</option>
…
</select>
- < select> 中少包含一对< option>。
- 在< option>中定义selected=“selected "时,当前项即为默认选中项。
如(注意select也属于表单,把它写在< form>中):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form>
籍贯:
<select>
<option>湖北</option>
<option>安徽</option>
<option>新疆</option>
<option>山东</option>
</select>
</form>
</body>
</html>
可以看到:
如果想设定下拉列表默认选项为山东,可以把16行改为:
<option selected="selected">山东</option>
8.4.4< textarea >文本域元素
使用场景:当用户输入内容较多的情况下,我们就不能使用文本框表单了,此时我们可以使用< textarea>标签。
在表单元素中, < textarea>标签是用于定义多行文本输入的控件。
使用多行文本输入控件,可以输入更多的字,该控件常见于留言板、评论。
语法:
<textarea rows="3" cols="20">
文本内容
</textarea>
例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form>
意见反馈:
<textarea rows="5" cols="50">
反馈留言用textarea!
</textarea>
</form>
</body>
</html>
虽然rows=”5”,但我们可以写不止5行:
注意:
1.通过标签可以轻松地创建多行文本输入框。
2. cols= "每行中的字符数”, rows=“ 显示的行数”, 我们在实际开发中不会使用,都是用CSS来改变大小。(所以了解即可)