form表单与模块引擎
1.form表单的基本使用
1.1什么是表单
表单在网页中主要负责数据采集功能。HTML中的<form>标签,就是采集用户输入的信息,并通过<form>标签的提交操作,把采集到的信息提交到服务器端进行处理。
1.2表单的组成部分
表单由三部分组成:1.表单标签 2.表单域 3.表单按钮
1.3<form>标签的属性
<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方式适合用来提交大量的、复杂的、或包含文件上传的数据。
在实际开发中用到的post方式是最多的,很少用到get
4.enctype
enctype属性用来规定在发送表单数据之前如何对数据进行编码。
它的可选值有三个,默认情况下,enctype的值为application/x-www-form-urlencoded,表示在发送前编码所有字符。
注意:在涉及到文件上传的操作时,必须将enctype的值设置为multipart/form-data
如果表单提交不涉及到文件上传操作,则直接将enctype的值设置为application/x-www-form-urlencoded即可。
1.4表单的同步提交及缺点
1.什么是表单的同步提交
通过点击submit按钮,触发表单提交的操作,从而使页面跳转到action URL的行为,叫做表单的同步提交。
2.表单同步提交的缺点
(1)<form>表单同步提交后,整个页面会发生跳转,跳转到action URL 所指向的地址,用户体验感极差。
(2)<form>表单同步提交后,页面之前的状态和数据会丢失。
3.如何解决表单同步提交的缺点
解决方案:表单只负责采集数据,Ajax负责将数据提交到服务器。
2.通过Ajax提交表单数据
2.1监听表单提交事件
在jQuery中,可以有两种方式,可以监听到表单的提交事件:
第一种方式:首先获取到表单,然后调用表单的submit函数,然后提供一个回调函数,就能监听到表单的提交事件。
第二种方式:首先获取到表单,然后调用.on函数,给表单绑定一个submit事件,也可以监听到表单提交事件。
<body> <form action="/login" id="f1"> <input type="text" name="user_name"> <input type="password" name="password"> <button type="submit">提交</button> </form> <script> $(function () { // 第一种方式 $('#f1').submit(function () { alert('监听到了表单的提交事件') }) // 第二种方式 $('#f1').on('submit', function () { alert('监听到了表单的提交事件'); }) }) </script> </body>
2.2阻止表单的默认提交行为
当监听到表单的提交事件后,可以调用事件对象的event.preventDefault()函数,来阻止表单的提交和页面的跳转,示例代码如下:
2.3快速获取表单中的数据
1.serialize()函数
为了简化表单中数据的获取操作,jQuery提供了serialize()函数,其语法格式如下:
serialize()函数的好处:可以一次性获取到表单中的所有的数据
2.serialize()函数示例
注意:在使用serialize()函数快速获取表单数据时,必须每个表单元素添加name属性 0
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南