【发布时间】:2019-07-23 11:37:22
【问题描述】:
我必须构建一个包含大量字段(可能 >1000 个字段)的表单。由于recommended GET URL length limit,我想将其拆分为几个较小的表单(每个表单有 12 个字段),在完成后提交。
基本上我正在寻找的是某种 form.onBlur 事件:我只想在以下情况下提交表单:
- 其中一个输入失去焦点(模糊)
- 此表单的其他输入都没有焦点
关于处理这个问题的好方法有什么想法吗?也许我需要让每个 input.onBlur 事件检查表单其他输入的当前焦点状态?
编辑:我非常了解 GET 与 POST,包括安全问题和数据量。对于我的特定设置的特定问题,GET 请求是唯一的选择;所以这个问题。
【问题讨论】:
-
如果您的表单真的那么大,您可能不应该使用
GET,而是使用POST。对于如此大的负载,您没有理由使用GET提交。 -
很遗憾,
POST在这种情况下不是一个选项(仅限前端开发) -
“遗憾的是,在这种情况下,POST 不是一个选项(仅限前端开发)”......这没有任何意义。如果您不负责后端,那很好,但是您必须与负责的人交谈,并说他们将其设计为仅接受 GET 请求的方式是不切实际的。它甚至可能导致安全漏洞(例如,如果包含个人详细信息或类似信息的表单数据位于 URL 的查询字符串中,它可能最终出现在服务器日志等中,它可能会持续数年和/或对不需要查看它的人可见. 通过 GET 提交详细数据通常不是一个好主意。)
-
最重要的是,正如我所概述的,如果不对后端进行某种更改,您将无法解决此问题。因此,如果需要进行更改,最简单和最明显的解决方案是转而使用 POST。您可以将其拆分为许多较小的 GET,但这需要更多的工作,并且无论如何都需要在前端和后端进行更改。究竟为什么你声称不可能使用 POST?如果只是你不能请求对后端进行更改,那么由于我刚才提到的原因(即拆分它仍然需要后端更改),它不会被洗掉。
-
后端是一个带有扩展名的CMS。该扩展内置了对 GET 变量的支持,但不支持 POST。对了,对你来说够清楚了吗?
标签: javascript html