一个页面可以有多个表单么

多个表单同时提交。在一个页面里

阅读 11.6k
7 个回答

当然可以,比如sf的登录页面,不就是一个注册区表单和一个登录区表单吗。根据需求来吧。

可以的,每个表单都有一个submit方法,可以写一个按钮,监听click事件,然后逐个调用form的上传方法

部分代码示例:

var forms = document.forms;
for(var i=0,j=forms.length;i<j;i++){
    forms[i].submit()
}

一个页面是可以有多个表单的,但是表单不允许嵌套

可以的,每个表单的提交都都可以设置不同的地址。

这个是肯定可以的,表单只是html中的一部分,你可以将它理解为div一样,只不过div是结构,可以循环嵌套,而form则相当于一个整体,他们可以共存,但是不能相互嵌套,因为那样在逻辑上就乱了。

如果你将整个页面比如故宫,那么form可以是宫殿,div和p等标签可以是围墙,围墙可以围着围墙,但是宫殿只能相互独立

我猜测题主想问的是如何在一个页面多表单提交不刷新页面,其他表单填写的内容不丢失。

满足这个需求,最简单的当然是用js来提交,监听所有表单的submit事件,然后阻止掉默认,如有表单的嵌套(极不推荐,虽然浏览器能正常工作)再阻止掉冒泡,再然后用ajax或者fetch的方法提交表单。

曾经做ajax的无刷新上传文件的时候还弄过clone一个iframe出来提交表单,也是一种思路。

举个小例子。
https://jsfiddle.net/e1crpnnz/

  1. 一个页面里有多个表单没问题

  2. 多个表单同时提交,没想到有什么地方会有这样的需求。如果多个表单同时提交的话,恐怕要用 ajax 提交了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题