使用之前学习过的标签可以做出静态界面,但要想实现与后端进行交互的动态界面需要借助表单,如文本框、按钮、下拉菜单等。
在 HTML 中,有五种表单标签:form、input、textarea、select 和 option;从外观上来划分,表单可分为单行文本框、密码文本框、单选框、复选框、按钮、文件上传、多行文本框、下拉列表 8 种。
一、form 标签
1、标签简介
在创建一个表单后,需要把所有的表单标签放入 form 内部,使用方式:<form> </form>,我们常说的表单,指的是文本框、按钮、单选框、复选框、下拉列表等的统称。
2、标签属性
常用标签属性如下:
| 属性 | 说明 |
|---|---|
| name | 表单名称 |
| method | 提交方式 |
| action | 提交地址 |
| target | 打开方式 |
| enctype | 编码方式 |
-
name 属性:为了区分多个表单,可以使用 name 属性给表单命名;使用方式:
<form name="myForm"> </form> -
method 属性:用于指定表单数据项提交使用哪种 http 方式,有两种方式可以选择:get 和 post,关于这两种方式的区别,会专门使用一篇新的文章来解释(先开个坑);使用方式:
<form method="post"> </form> -
action 属性:用于指定表单数据提交到哪个地址进行处理;
-
target 属性:与 a 标签中的 target 属性作用相同,都是用来指定窗口打开的方式;
-
enctype 属性:用于指定表单数据提交的编码方式,表单数据默认会编码为 "application/x-www-form-urlencoded"。就是说,在发送到服务器之前,所有字符都会进行编码(空格转换为 "+" 加号,特殊符号转换为 ASCII HEX 值)。
| 属性值 | 处理方式 |
|---|---|
| application/x-www-form-urlencoded | 在发送前编码所有字符(默认) |
| multipart/form-data | 不对字符编码。在使用包含文件上传控件的表单时,必须使用该值 |
| text/plain | 空格转换为 "+" 加号,但不对特殊字符编码。 |
二、input 标签
大多数表单都是使用 input 标签来实现的,其是自闭合标签,基本使用方式:<input type=""/>,type 属性值见下表:
| 属性值 | 说明 |
|---|---|
| text | 单行文本框 |
| password | 密码文本框 |
| radio | 单选框 |
| checkbox | 单选框 |
| botton、submit、reset | 按钮 |
| file | 文件上传 |
三、单行文本框
1、文本框简介
单行文本框使用 input 标签实现,其中 type 属性值为 text,有如下代码:
<form>
姓名:<input type="text"/>
</form>
在浏览器中显示为:
2、文本框属性
- value 属性:设置文本框的默认值,如
<input type="text" value="Like_Frost"/>,在浏览器中效果如下:
- size 属性:设置文本框的长度,有如下代码:
<form>
姓名:<input type="text" size="10"/>
<br/>
姓名:<input type="text" size="20"/>
</form>
在浏览器中效果如下:
- maxlength 属性:设置文本框可输入的最大字符数,有如下代码:
<form>
姓名:<input type="text" maxlength="6"/>
<br/>
姓名:<input type="text"/>
</form>
在浏览器中显示为:
上面的文本框可接受的最大长度为 6
四、密码文本框
可以将密码文本框看作是一个特殊的单行文本框,它与单行文本框的外观相似,属性相同,只不过密码文本框的文字不可见。使用方式:<input type="password"/>,有如下代码:
<form>
密码:<input type="password"/>
</form>
在浏览器中显示为:
注: 密码文本框的文本框属性和单行文本框相同,此处不再赘述。
五、单选框
单选框使用 input 标签实现,基本用法:<input type="radio" name="" value=""/>,name 为单选按钮所在的组名,value 表示单选按钮的取值,为必需属性;有如下代码:
<form>
性别:
<input type="radio" name="gender" value="男"/>男
<input type="radio" name="gender" value="女"/>女
</form>
在浏览器中显示为:
若想让某一项默认选中,可以在 input 标签中添加 checked 属性,如 <input type="radio" name="gender" value="女" checked/>女,也可以写为: <input type="radio" name="gender" value="女" checked="checked"/>女
注: name 属性一定要加,相同 name 表示一个组,在组内的各个选项是互斥的,如果没有对其加上 name 属性或者两个选择框的 name 属性不一致,会出现两个选择框都可以选中的现象,比如下面这段代码:
<form>
性别:
<input type="radio" value="男"/>男
<input type="radio" value="女"/>女
</form>
会出现两个单选框都可以被选中的效果:
为了更好的语义化,常把 input 和其提示文字放在 label 标签中:
<label>
<input type="radio" value="男"/>男
</label>
<label>
<input type="radio" value="女"/>女
</label>
六、复选框
复选框也是使用 input 标签来实现的,其中 type 的取值为 checkbox,基本用法:<input type="checkbox" name="" value=""/>,有如下代码:
<form>
喜欢上的课:
<input type="checkbox" value="数学"/>数学
<input type="checkbox" value="语文"/>语文
<input type="checkbox" value="英语"/>英语
</form>
在浏览器中显示为:
默认选中的选项也是使用 checked 属性。
七、按钮
一般有三种按钮:普通按钮、提交按钮、重置按钮。
1、普通按钮
使用方式:<input type="button" value=""/>,value 的取值就是按钮上显示的文字,一般配合 JS 来完成某些功能。
2、提交按钮
用来给服务器提交数据,使用方式:<input type="submit" value=""/>,提交按钮和普通按钮在外观上没有不同,区别在于他们的功能上。
3、重置按钮
用于清除用户在表单上输入的内容,仅限于 form 标签内部的输入框,使用方式:<input type="reset" value=""/>,有如下代码:
<!DOCTYPE html>
<html>
<head>
<meta name="keywords" content="个人主页,HTML学习笔记"/>
<meta name="author" content="Like_Frost"/>
<meta name="description" content="学习示例"/>
<meta name="copyright" content="版权所有,转载前请联系"/>
<script>
window.onload = function(){
var but = document.getElementById("But");
but.onclick = function(){
alert("输入框已重置");
}
}
</script>
</head>
<body>
<form>
<label> 账号 :<input type="text"/></label><br/>
<label> 密码 :<input type="password"/></label><br/>
<input type="reset" value="重置" id="But"/>
</form>
</body>
</html>
当点击重置按钮后,会清空输入表单,并弹出提示框:
对于以上三种按钮,也可以使用按钮标签来实现,其使用方式为<button> </button>,但是在不同的浏览器中,使用 button 标签会提交不同的 value 值,所以尽量使用 input 标签。
八、文件上传
在页面设计过程中,有时候会有上传文件的需求,可以使用 input 标签来实现,使用方式:<input type="file"/>,在浏览器中效果如下:
九、多行文本框
多行文本框可以输入多行本文,使用 textarea 标签实现,使用方式:<textarea rows="" cols=""> 默认显示文字 </textarea>,rows 和 cols 用来指定多行文本框所占的行和列数,默认显示文字在标签内部设定,有如下代码:
<body>
<textarea rows="10" cols="20">这是一个多行文本框</textarea>
</body>
在浏览器中显示为:
十、下拉列表
1、下拉列表简介
下拉列表使用 select 和 option 两个标签配合使用,示例:
<select>
<option>选项1</option>
<option>选项2</option>
<option>选项3</option>
<option>选项4</option>
</select>
在浏览器中显示如下:(在默认情况下只显示第一个选项,下拉后可查看完整选项)
2、select 标签属性
-
multiple:设置下拉列表可以选择多项,直接写在 select 标签内部,
<select multiple> </select>, 可以使用 Ctrl+鼠标左键选取多项; -
size:整数值,设置下拉列表最多显示几项,Chrome 浏览器最少为 4 ,
<select size="4"> </select>,在浏览器中效果:
3、option 标签属性
- selected:是否选中,直接写在 option 标签中,
<option selected> </option>; - value:选项值 有如下示例:
<select>
<option>选项1</option>
<option>选项2</option>
<option selected>选项3</option>
<option>选项4</option>
<option>选项5</option>
</select>
在浏览器中显示为:
若将其展开(select 标签显示多行),效果为: