1.什么是表单
表单在网页中主要负责数据采集功能。HTML中的<form>标签,就是用于采集用户输入的信息,并通过<form>标签的提交操作,把采集到的信息提交到服务器端进行处理。
2.表单的组成部分
3.表单属性
<form>标签用来采集数据,<form>标签的属性则是用来规定如何把采集到的数据发送到服务器。
1.action属性
action属性用来规定当提交表单时,向何处发送表单数据。
action属性的值应该是后端提供的一个URL地址,这个URL地址专门负责接收表单提交过来的数据。当<form>表单在未指定 action属性值的情况下,action的默认值为当前页面的URL地址。
注意:当提交表单后,页面会立即跳转到action属性指定的URL地址
2.target
target属性用来规定在何处打开action URL。
它的可选值有5个,默认情况下,target的值是_self,表示在相同的框架中打开action URL.
3.method
method属性用来规定以何种方式把表单数据提交到action URL。
它的可选值有两个,分别是get和post。
默认情况下,method的值为get,表示通过URL地址的形式,把表单数据提交到action URL.
注意:
get方式适合用来提交少量的、简单的数据。
post方式适合用来提交大量的、复杂的、或包含文件上传的数据。
在实际开发中,<form>表单的post提交方式用的最多,很少用get。例如登录、注册、添加数据等表单操作,都需要使用post方式来提交表单。
4.enctype(Enctype只能在POST方式下使用。 )
enctype属性用来规定在发送表单数据之前如何对数据进行编码。
它的可选值有三个,默认情况下,enctype的值为application/x-www-form-urlencoded,表示在发送前编码所有的字符。
注意:
在涉及到文件上传的操作时,必须将enctype 的值设置为multipart/form-data
如果表单的提交不涉及到文件上传操作,则直接将enctype的值设置为 application/x-www-form-urlencoded即可!
4. 表单同步提交及缺点
如果使用表单提交数据,则会导致以下两个问题:
①页面会发生跳转
②页面之前的状态和数据会丢失
解决方案:表单只负责采集数据,Ajax负责将数据提交到服务器。
1.阻止表单默认提交行为
当监听到表单的提交事件以后,可以调用事件对象的event.preventDefault()函数,来阻止表单的提交和页面的跳转,示例代码如下: