参考http://www.w3school.com.cn/html/html_forms.asp w3school
https://www.cnblogs.com/yaochc/p/4957791.html
HTML 表单用于收集用户输入。
HTML 表单包含表单元素。表单元素指的是不同类型的 input 元素、复选框、单选按钮、提交按钮等等。
eg:
action属性
必需的 action 属性规定当提交表单时,向何处发送表单数据。
下面的表单拥有两个输入字段以及一个提交按钮,当提交表单时,表单数据会提交到名为 "form_action.asp" 的页面:
请注意表单本身是不可见的。
同时请注意文本字段的默认宽度是 20 个字符。
结果显示:
method属性
method 属性规定如何发送表单数据(表单数据发送到 action 属性所规定的页面)。
表单数据可以作为 URL 变量(method="get")或者 HTTP post (method="post")的方式来发送。
get和post的区别
一、安全性
因为get会将用户名和密码放在URL中,进而出现在浏览器的历史记录中,显然这种情况应该用post.
二、编码
get只能向服务器发送ASCII字符,而post则可以发送ISO 10646中的字符
get和post对应的enctype属性有区别:
application/x-www-form-urlencoded
在发送前编码所有字符(默认)
multipart/form-data
不对字符编码。 在使用包含文件上传控件的表单时,必须使用该值。
text/plain
空格转换为 "+" 加号,但不对特殊字符编码。
三、提交数据的长度
IE将请求的URL长度限制为2083个字符,从而限制了get提交的数据长度,如果URL超出了这个限制,提交form时IE不会有任何反映。
四、缓存
由于一个get得到的结果直接对应到一个URL,所以get的结果页面有可能被浏览器缓存,而post一般不能
五、引用和SEO
可以用一个URI引用一个get的结果页面,而post的结果则不能,所以必然不能被搜索引擎搜到。
最本质的区别
get是用来从服务器上获得数据,而post是用来向服务器上传递数据
六、正确的使用get和post
当且仅当form是幂等的时候,使用get。
幂等:多次相同的请求产生的副作用,和一次请求的副作用相同。
如果提交请求纯粹只是从服务器端获取数据而不是进行其他操作,并且多次提交不会有明显的副作用,应该使用get。
比如:搜索引擎的查询(http://www.google.com/search?q=abc)和分页(user.do?page=1)
如果提交这个请求会产生其他操作和影响,就应该使用post。
比如:修改服务器上数据库中的数据;发送一封邮件;删除一个文件等
另一个要考虑因素是安全性。
若符合下列任一情况,则用post方法:
a.请求的结果有持续性的副作用,例如:数据库内添加新的数据行。
b.若使用get方法,则表单上收集的数据可能让URL过长。
c.要传送的数据不是采用ASCII编码。
若符合下列任一情况,则用get方法:
a.请求是为了查找资源,html表单数据仅用来搜索。
b.请求结果无持续性的副作用。
c.收集的数据及html表单内的输入字段名称的总长不超过1024个字符。
七、浏览器差异
IE6:URL长度限制为2083个字符;post之后,刷新页面不会自动重新post数据,会出现警告。
IE7和IE6相同。
Firefox:刷新页面不会自动重新post数据会出现警告。
post和get容易忽视的一点差别:
就是当method为get时,action属性中URL后面的参数是忽视的。
例如:
action=insert.jsp?name=tobby method=get,当我们提交之后真正的url中是没有name=tobby的,他会根据表单中的内容重新组装成一个url的,假如form中有一个文本框,,那么url会变成insert.jsp?addresswuhan.
元素是最重要的表单元素。
元素根据不同的 type 属性,有很多形态。eg: type="text"
text:文本
submit:提交,常见的提交表单内容的属性
image:用图片作为按钮,点击有同submit同样的效果
button:普通按钮,没有任何效果,需要用js主动添加效果
reset:重置,重置输入的所有内容
radio:单选框
CheckBox:复选框
在 HTML 文档中 每出现一次,Checkbox 对象就会被创建。
CheckBox常见属性:
checked 默认选择
disabled 禁用
password:密码,会自动加密输入的内容
number:数字格式
date:日期 ,不同的浏览器有不同的显示格式,谷歌支持效果较好
datetime:时分秒,同上
week:一年里的第几周
email:要求邮件格式的输入,会自动检查,如果格式不正确会提示
color:选择颜色,会自动弹出颜色选择器
range:滑动条,可以设置范围格式等
file:上传文件
下拉菜单
selected默认选择