我有一个 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/