如果一个页面仅仅供用户浏览,那就是静态页面。如果这个页面还能实现与服务器进行数据交互(像注册登录、话费充值、评论交流),那就是动态页面。表单是我们接触动态页面的第一步。其中表单最重要的作用就是:在浏览器端收集用户的信息,然后将数据提交给服务器来处理。
在HTML中,表单标签有五种:form、input、textarea、select和option。
表单效果:
从外观上来划分,表单可以分为以下八种。
- 单行文本
- 框密码文本框
- 单选框
- 复选框
- 按钮
- 文件上传
- 多行文本框
- 下拉列表
创建一个表单,就像创建一个表格,我们也必须要把所有表单标签放在form标签内部。
form标签常用属性如表:
在form标签中,method属性用于指定表单数据使用哪一种http提交方法。method属性取值有两个,一个是get,另外一个是post。get在安全性较差,而post安全性较好。所以在实际开发中,我们都是使用post。
在form标签中,action属性用于指定表单数据提交到哪一个地址进行处理。
在form标签中,target属性与a标签的target属性是一样的,都是用来指定窗口的打开方式。一般情况下,我们只会用到_blank这一个属性值。
在HTML中,大多数表单都是使用input标签来实现的。
<input type="表单类型" />
练习题:
代码:
html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>表单练习题</title>
</head>
<body>
<form method="post" >
昵称:<input type="text" name="nickname" size="20"/><br/>
密码:<input type="passwword" name="password" size="20"/><br/>
邮箱:<input type="email" name="email" size="20"/>
<select>
<option value="qq.com">qq.com</option>
<option value="163.com">163.com</option>
<option value="gmail.com">gmail.com</option>
<option value="yahoo.com">yahoo.com</option>
</select><br/>
性别:<input type="radio" name="sex" value="男" checked/>男
<input type="radio" name="sex" value="女"/>女<br/>
爱好:<input type ="checkbox" name="旅游"/>旅游
<input type="checkbox" name="摄影"/>摄影
<input type="checkbox" name="运动"/>运动<br/>
个人简介:<br/>
<textarea name="intro" rows="5" cols="50"></textarea><br/>
上传个人照片:<br/>
<input type="file" name="photo"><br/>
<hr/>
<input type ="submit" value="立即注册" /><br/>
</form>
</body>
</html>
效果图:
练习过程的代码:
html
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="UTF-8">
</head>
<body>
<!-- input、textarea、select、option都是表单标签,我们必须要放在form标签内部 -->
<form name="MyForm" method="post">
<input type="text" value="这是一个单行文本框"/><br/>
<textarea>这是一个多行文本框</textarea><br/>
<!-- 下拉列表 -->
<select>
<option>HTML</option>
<option>CSS</option>
<option>JavaScript</option>
</select><br/>
<!-- 单行文本框 -->
<!-- value属性:显示默认值,size属性:设置输入框的宽度,maxlength属性:设置输入框的最大长度 -->
姓名:<input type="text" value ="张三" size="10" maxlength="10"/><br/>
<!-- 密码框 -->
密码:<input type="password" value="123456" size="5" maxlength="10"/><br/>
<!-- 单选框 -->
<!-- name属性表示单选按钮所在的组名,互斥用;而value表示单选按钮的取值(不显示),这两个属性必须要设置。 -->
性别:<input type="radio" name="gender" value="男"/>男
<input type="radio" name ="gender" value="女"/>女<br/>
<!-- 默认checked属性表示默认选中 -->
性别:<input type="radio" name="gender" value="男" checked/>男
<input type="radio" name ="gender" value="女"/>女<br/>
<!-- 没有加上name属性,预览效果好像没有变化。但是当我们选取的时候,会发现居然可以同时选中两个选项 -->
<!-- 因此我们必须要加上name属性。有小伙伴就会问了:在同一组单选框中,name属性取值一样 -->
年龄:<input type="radio" name="age" value="18"/>
<input type="radio" name="age" value="19"/>
<input type="radio" name="age" value="20"/><br/>
年龄:18<input type="radio" name="age" value="18"/>
19<input type="radio" name="age" value="19"/>
20<input type="radio" name="age" value="20"/><br/>
<!-- 对于单选框,加不加value好像没啥区别啊?为啥还加上呢?value属性取值一般跟后面的文本相同,
之所以加上value属性,是为了方便JavaScript或者服务器操作数据。所有表单元素的value属性的作用都是一样的 -->
<!-- 为了得到更好的语义化,表单元素与后面的文本一般都需要借助label标签关联起来。 -->
年龄:<label>
18<input type="radio" name="age" value="18"/>
</label>
<label>
19<input type="radio" name="age" value="19"/>
</label>
<label>
20<input type="radio" name="age" value="20"/>
</label><br/>
<!-- 复选框 -->
<input type="checkbox" name="组名" value="取值"/>复选框1<br/>
你喜欢的水果:<br/>
<input type="checkbox" name="fruits" value="苹果" checked/>苹果
<input type="checkbox" name="fruits" value="香蕉" checked/>香蕉
<input type="checkbox" name="fruits" value="橘子"/>橘子<br/>
<!-- 按钮 -->
<!-- 在HTML中,普通按钮一般情况下都是配合JavaScript来进行各种操作的。 -->
<input type="button" value="确定" onclick="alert('确定按钮被点击了!')"/>
<!-- 提交按钮 -->
<input type="submit" value="提交"/>
<!-- 重置按钮 -->
<!-- 在HTML中,重置按钮一般用来清除用户在表单中输入的内容。重置按钮也可以看成是具有特殊功能的普通按钮。 -->
<!-- 重置按钮只能清空它所在form标签内表单中的内容,对于当前所在form标签之外的表单清除无效。 -->
<input type="reset" value="重置"/>
<!-- 文件上传 -->
<br/>
文件上传:<input type="file" /><br/>
<!-- 多行文本框 -->
<textarea rows="5" cols="30" value="多行文本框">默认显示文本</textarea><br/>
个人简介:<br/>
<textarea rows="5" cols="30" name="intro">请输入个人简介</textarea><br/>
<!-- 隐藏域 -->
<!-- 隐藏域是指在表单中,用户不可见,但又需要提交给服务器的数据。 -->
<input type="hidden" name="hidden" value="隐藏数据"><br/>
</form>
<!-- 下拉列表:显示多项 -->
<form method="post">
<select multiple>
<option value="苹果">苹果</option>
<option value="香蕉">香蕉</option>
<option value="橘子">橘子</option>
<option value="葡萄">葡萄</option>
<option value="柚子">柚子</option>
</select>
<!-- 将size取值为1、2、3时,会发现在Chrome浏览器中无效。这是因为Chrome浏览器最低是4个选项,我们只能选取4及以上数字。 -->
<select multiple size="2">
<option value="苹果" selected>苹果</option>
<option value="香蕉">香蕉</option>
<option value="橘子">橘子</option>
<option value="葡萄">葡萄</option>
<option value="柚子">柚子</option>
</select>
<!-- selected属性表示列表项是否被选中 -->
</form>
</body>
</html>
效果图: