表单有两个较特殊的属性,一个是method,是规定用于发送表单的HTTP方法(提交表单的方式);还有一个是action,是规定当提交时向何处发送表单的数据(要提交表单的地址)。Form表单有一个自动提交的功能(submit)有时候不写submit也会自动提交。可以默认不写。如果不想要表单自动提交就要写阻止表单自动提交的方法(οnsubmit="return false;")。
表单的提交方式有两种:分别是get提交(为表单的默认提交方式)与post提交。
1.get提交
请求参数放到请求的地址后面,参数大小受限只能传递几k的数据。由于参数再地址后面安全性不能保证。但是速度较快。
应用场景:地址栏发出的请求/超链接发出的请求。
2.post请求
请求参数放到请求体里面,参数大小没有限制,请求参数不可见,所以安全性更高,速度慢。
应用场景:当form表单指定请求方式为post时发出请求。
3.get和post的区别
Get方法是用来向服努器上获取数据;而Post是用来向服务器上传递修改数据。
两者传递参数的方式不一样,Get是将数据直接添加到action所指向的URL后面;而Post是将数据放在form的数据体中。
Get是不安全的,因为在传输数据的过程中数据直接暴露在请求的URL上,用户可以在浏览器上看到提交的数据,还有一些系统内部信息也会显示在用户面前;而Post的所有操作用户都是不可见的。
Get提交传输的数据量少,受限于URL的长度限制;而Post提交没有数据量限制。
Get提交方式获取数据后刷新不会有负面影响;而Post提交刷新页面重复提交可能会产生不良的后果。
4.表单提交的原则
表单提交主要是通过表单元素的name值等于value值进行传递数据的,但是表单提交时需要注意一下原则;
name相同的表单提交格式
如果name值相同的表单提交,该name值会出现多次,且对应不同表单的值。
没有name的表单、disabled的表单元素
表单元素没有name属性、含有disabled属性都会被禁止提交。
5.serialize()
serialize()方法通过序列化表单值创建URL编码文本字符串。
您可以选择一个或多个表单元素(如输入和/或文本区),或表单元素本身。序列化的值可在生成 AJAX请求时用于URL查询字符串中。
语法:
$(selector).serialize()
6.serializeArray()
serializeArray0)方法通过序列化表单值来创建对象(name和value)的数组。
语法:
$(selector).serializeArray()