iOS Safari 在按下浏览器后退按钮后清除表单字段

标签 ios ruby-on-rails http ruby-on-rails-5 mobile-safari

我有一个 Rails 表单,提交后会将您带到预览页面。在预览页面,您可以检查后提交,也可以返回修改。在我测试过的一些浏览器(台式机上的 Firefox 和 Android 上的 Chrome)中,当您返回时,表单会保留用户之前输入的所有详细信息(这是理想的)。

然而,在我测试过的几个 iOS Safari 浏览器上,表单被完全清除。这有原因或解决方法吗?在用户输入被清除之前,您确实会看到几秒钟的用户输入。我假设这是浏览器在执行此操作。


我确实对涉及收集参数并通过自定义页内后退按钮再次预填写表单的解决方法有一个模糊的概念,但我宁愿避免它。

感谢您的宝贵时间。

最佳答案

您无法使用 Rails 更改 Safari 的行为。不过,如果您将表单数据保存到 cookie/session 中,您可以检查它并将其重新加载到表单中。

involving collecting parameters and pre-filling the form again through a custom in-page back-button

这对用户来说非常简单,也更容易理解。
link_to 'Edit', new_THING_path(params)

这将采用他们输入的参数并将它们与这些参数一起发送回新页面。

然后,如果有参数:
@thing = Thing.new(参数)

这将使用任何传入的参数设置表单,如果没有任何参数,则设置默认对象。

他们可以多次提交和编辑表单,直到他们改正为止。

关于iOS Safari 在按下浏览器后退按钮后清除表单字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59262500/

相关文章:

ios - 如何使用 iOS Quartz 2D 绘图绘制这个复杂的形状?

ruby-on-rails - 使用 RSPEC 渲染 RABL 模板时出现空响应

ruby-on-rails - 如何在没有浏览器的情况下测试 sproutcore 应用程序

python - Django 无法上传多个文件并且 request.FILES 似乎为空

jquery - iOS Web 应用程序启动时总是带有闪屏

ios - 为什么我的 NSNotificationObserver 在消息运行时被释放?

ruby-on-rails - 耗尽路由中的 Rails 命名空间

http - Ionic 2等待http响应

macos - macOS 上 NSURLConnection 和 NSURLSession 的默认 HTTP 用户代理字符串是什么?

ios - CGPDFScannerScan 不调用回调函数