【问题标题】:How to "GO BACK" to the previous page after submit is clicked on a form?单击表单上的提交后如何“返回”到上一页?
【发布时间】:2017-08-28 08:08:34
【问题描述】:

我正在做一个关于 grails 的项目。

我有一个过滤器页面 (Filters.html),我可以在其中使用各种参数执行搜索。执行搜索后,将显示结果。 (结果.html) 在结果页面中,它有一个更新记录的链接。 (更新.html) 单击更新链接后,它将进入更新 html 页面,在该页面中有一个后退按钮,还有一个表单,以便可以更新和保存详细信息。

使用 window.history.go(-1);和 window.history.back() 它会毫无问题地进入后页。但是当表单详细信息更新时会出现问题。提交表单时,它会进入相同的更新页面并显示记录已更新。之后,当单击“返回”按钮时,它会转到同一页面。但不会返回结果页面。如果我单击 BACK 按钮两次,它将返回结果页面。

我无法在更新页面中保存搜索参数,因为有几种方法可以访问 update.html。 有什么建议吗?

【问题讨论】:

  • 您是否已经尝试过 history.go(-1) 并返回 false? .比如:返回

标签: javascript jquery html grails


【解决方案1】:

您可以重定向回结果视图,而不是在成功更新后重新呈现更新页面。

update() {
    // do the update
    redirect( action: 'results' )
}

或者,与其使用后退按钮,不如使用一个直接将您带到结果视图的按钮:

<g:link action="results"><button type="button" value="Results">Results</button></g:link>

【讨论】:

  • 我无法重定向到结果页面,因为还有其他几种方法可以转到更新页面。此外,当重定向到搜索页面时,它必须显示选定的过滤器及其结果。
  • 在这种情况下,您会将搜索中的参数存储在更新表单中作为隐藏字段,然后将它们添加到 g:link 中的参数中
【解决方案2】:

如何创建一个名为 numUpdates 的变量(任何东西)。更新表单时增加变量,并让“返回”按钮调用 window.history.go(-1*numUpdates)。

【讨论】:

    【解决方案3】:

    更改表单提交的页面的URL,在末尾添加一个参数

    例如 update.html?submitted=true

    然后创建一个 if 语句,如果 URL 包含 submit=true(或您选择的任何文本),则将后退按钮 URL 更改为 results.html。

    希望这是有道理的。

    如果你还是卡住了,我可以帮你打代码

    【讨论】:

      猜你喜欢
      • 2014-05-09
      • 2012-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-11
      • 1970-01-01
      • 2014-05-18
      • 2014-05-26
      相关资源
      最近更新 更多