JavaScript 同时提交多个 Web 表单的两种方案
本文介绍在 Web 开发中如何同时提交多个独立表单。主要对比两种方案:一是利用 Ajax(如 Prototype 框架)异步提交,代码简洁但受跨域限制;二是通过多个 iframe 配合 JS 触发 submit,支持跨域但结果处理稍复杂。
多表单同时提交的需求背景
比如一个详细的简历信息页面分 1、个人资料 2、工作经验 3、项目经验 4、其他信息 4个表单。
通常的需求是允许用户单独提交其中任何一个表单到下一个页面进行修改操作,即页面有四个不同的修改按钮,点击哪个按钮则只提交某一个表单的数据到服务器,并根据表单的 action 属性进行处理。
现在有这样的需求,允许用户选择其中任意的一个或多个表单进行提交修改,这样的话在客户端如何提交表单?
声明:可能会有人说将 4 个表单合成一个大表单,根据修改按钮的不同在服务器端进行不同的数据操作即可。这是一种解决办法,但考虑到页面数据量比较大,为了提高效率,减少数据传输量,还是希望能够分成多个表单提交,所以这个办法暂不考虑。
基于 Ajax 的提交方案
是不是一定要用 js 或 ajax?如果不用呢?
2 个人观点
1 用 Ajax 提交,比如 prototype
new Ajax.Request();
你可以同时调用多个,默认是异步提交,所以可以同时提交多个表单,这个方案是最简单的。
基于 iframe 的提交方案
2 使用多个 iframe,然后将每个表单的 target 指向不同的 iframe
然后用 js 的
document.getElementById("form1").submit();
document.getElementById("form2").submit();
。。。
这个样子进行提交。
3 两个方法的对比
两种方案的对比与总结
Ajax 方便简单,对结果的处理也比较省事,框架都替我们做好了,但不能跨域提交
iframe 最符合一般的使用,也可以跨域提交,处理返回结果稍微麻烦些,需要在 iframe 里面使用 parent.进行调用才可以。
Object.assign合并JS对象的用法与注意事项
2026-11-05 17:56:08
JS大数值转字符串出现科学计数法怎么办
2026-11-05 17:09:21
JS split切割后出现空字符串怎么过滤
2026-11-05 16:00:30
在 React 或 Vue 项目中封装使用 JS 节流防抖
2026-11-05 15:27:29
JavaScript中怎么将带小数的字符串转为整数?
2026-11-05 14:32:38
