【发布时间】:2021-05-23 18:18:01
【问题描述】:
我想要实现的是获取现有表单隐藏字段,添加另一个包含数组的字段,然后将其 POST 到服务器,但采用旧方式。我的意思是,在 POST 之后,页面应该像普通表单一样从服务器获取新的 HTML。
我尝试使用$.post(),但这就像一个 AJAX 请求,页面没有从服务器重新加载。
我认为我可以动态添加一个隐藏字段,并在提交之前用我的数组填充它的值。但是这样做可能会被浏览器截断。该数组有时会变得非常大,它是一个包含 CSV 文件数据的字段数组。所以我无法控制数组的长度。如果用户将处理 500 行 CSV,则该数组可能会有大约 2000 个键值。
所以基本上我正在寻找一个像 $.post() 这样的解决方案,我可以通过传递我的数组来填充提交数据,但具有表单的真实行为。页面必须提交并完全替换为服务器响应。我发现了一些用 ajax 响应替换页面的“hacks”,但它们太老套了,而且并不是每个浏览器都适用。
【问题讨论】:
-
你尝试过 Ajax beforeSend 功能吗?
-
您所建议的是一个 Ajax 请求。它不会从服务器获取具有更新内容的新页面。通过这样做,我必须用 Javascript 编写响应会发生什么,这会破坏网站开发方式的设计。所有表单提交均采用老式方式 form.submit
-
我只是想保持表单处理方式的一致性。我想要的最后一件事是在同一过程中同时使用 ajax 和普通提交。服务器端脚本设计为在表单提交后以整页 html 响应。在这种情况下使用 ajax 将使我编写一个 ajax 处理程序来仅发送相关数据,这会使代码变得更糟。
-
所以你不想在提交表单后使用javascript并移动到新页面。
-
我想使用 javascript,但脚本必须将我的数组添加到表单中,并从服务器获取新的 html。 html是整页。如果我使用的是 ajax,我需要使用一些讨厌的解决方案来用响应中的新页面替换当前页面 html。并非在每个浏览器中都以相同的方式工作。
标签: jquery