form表单作用
主要用于页面上收集用户输入的数据并提交给服务器
常用input标签
- text —— 输入单行文本,默认宽度20个字符
<div class="user">
<label for="user">姓名:</label>
<input type="text" id="user" name="user" placeholder="请输入姓名">
</div>
- password —— 定义密码输入字段,输入的字符会被隐藏
<div class="password">
<label for="password">密码:</label>
<input type="password" id="password" placeholder="请输入密码">
</div>
- radio —— 定义单选项
<div class="sex">
<label for="sex">性别:</label>
<input type="radio" name="sex" checked> 男
<input type="radio" name="sex"> 女
</div>
- checkbox —— 定义复选项
<div class="hobby">
<label for="hobby">爱好:</label>
<input type="checkbox" name="hobby"> 音乐
<input type="checkbox" name="hobby" checked> 旅游
<input type="checkbox" name="hobby" checked> 运动
</div>
- textarea —— 多行文本输入框
<div class="comment">
<label for="comment">评论:
</label>
<textarea name="comment" id="comment" cols="30" rows="10"></textarea>
</div>
reset —— 重置按钮,清除表单中的输入数据
<input type="reset">
submit —— 提交按钮,提交表单数据给服务器
<input type="submit">
button —— 按钮
<input type="button">
image —— 定义一个图片形式的按钮
<input type="image" src="submit.gif" alt="Submit" />
用这个方式提交表单,会出现提交两次的情况hidden —— 定义隐藏域,隐藏域在页面中对于用户是不可见的,目的在于收集或发送用户输入信息,以利于被处理表单的使用
注意:隐藏只是在网页页面上面不显示输入框,但是虽然隐藏了,还是具有form传值功能。一般用来传值,而不必让用户看到。
基本语法:
<input type="hidden" name="field_name" value="value">
作用:
- 隐藏域在页面中对于用户是不可见的,在表单中插入隐藏域的目的在于收集或发送信息,以利于被处理表单的程序所使用。浏览者单击发送按钮发送表单的时候,隐藏域的信息也被一起发送到服务器。
2.有些时候我们要给用户一信息,让他在提交表单时提交上来以确定用户身份,如sessionkey,等等.当然这些东西也能用cookie实现,但使用隐藏域就简单的多了.而且不会有浏览器不支持,用户禁用cookie的烦恼。 - 有些时候一个form里有多个提交按钮,怎样使程序能够分清楚到底用户是按那一个按钮提交上来的呢?我们就可以写一个隐藏域,然后在每一个按钮处加上onclick="document.form.command.value="xx""然后我们接到数据后先检查command的值就会知道用户是按的那个按钮提交上来的。
- 有时候一个网页中有多个form,我们知道多个form是不能同时提交的,但有时这些form确实相互作用,我们就可以在form中添加隐藏域来使它们联系起来。
- Javascript不支持全局变量,但有时我们必须用全局变量,我们就可以把值先存在隐藏域里,它的值就不会丢失了。
- 还有个例子,比如按一个按钮弹出四个小窗口,当点击其中的一个小窗口时其他三个自动关闭.可是IE不支持小窗口相互调用,所以只有在父窗口写个隐藏域,当小窗口看到那个隐藏域的值是close时就自己关掉。
- file —— 用于上传文件,通过accept属性可以的定义上传文件的类型,accept属性值如下:
值 | 描述 |
---|---|
image/* | 接受所有的声音文件。 |
video/* | 接受所有的视频文件。 |
image/* | 接受所有的图像文件。 |
MIME_type | 一个有效的 MIME 类型,不带参数。请参阅 IANA MIME 类型,获得标准 MIME 类型的完整列表。 |
参考:HTML <input> accept 属性-规定能够通过文件上传进行提交的文件类型
form中method属性的get和post方法的区别
get方法会将表单数据添加到action属性所指的URL中,在URL中可以看到填写的数据;post方法通过http post机制将表单数据添加到http header内,一起传送给action属性所指向的url中,用户是看不到这个过程
因为用户可以在url中看到填写的数据,因此其安全性能要比post低
get方法传输的数据量小,效率高,一般服务器或浏览器会对其数据量进行限制;post方法传输的数据量大,效率相对而言没有get方法高
对于get方法,在服务器端使用Requist.QueryString获取变量的值;对于post方法,使用Requist.Form获取提交的数据
get设置传输的数据编码必须为ASCII码,而post可以设置位ISO10646。
input中name有什么用?
规定input元素的名称
用于对提交到服务器的表单数据进行标识,或在客户端通过JavaScript调用表单数据
注:只有设置了name属性的表单元素才能在提交数据时对其进行区分
radio如何分组?
通过设置name属性为相同的值
placeholder属性的作用?
提供可描述输入字段预期值的提示信息
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JS Bin</title>
</head>
<body>
<form action="#" method="POST">
<div class="user">
<label for="user">姓名:</label>
<input type="text" id="user" name="user" placeholder="请输入姓名">
</div>
<div class="password">
<label for="password">密码:</label>
<input type="password" id="password" placeholder="请输入密码">
</div>
<div class="sex">
<label for="sex">性别:</label>
<input type="radio" name="sex" checked> 男
<input type="radio" name="sex"> 女
</div>
<div class="sex1">
<label for="sex1">取向:</label>
<input type="radio" name="sex1"> 男
<input type="radio" name="sex1" checked> 女
</div>
<div class="hobby">
<label for="hobby">爱好:</label>
<input type="checkbox" name="hobby"> 音乐
<input type="checkbox" name="hobby" checked> 旅游
<input type="checkbox" name="hobby" checked> 运动
</div>
<div class="comment">
<label for="comment">评论:
</label>
<textarea name="comment" id="comment" cols="30" rows="10"></textarea>
</div>
<div class="mycar">
<label for="mycar">车车:</label>
<select name="mycar" id="mycar">
<option value="cayanne">卡宴</option>
<option value="farrari">法拉利</option>
<option value="Lamborghini">兰博基尼</option>
</select>
</div>
<input type="file" accept="image/png">
<input type="submit">
<input type="reset">
</form>
</body>
</html>