我的页面底部有一个表单。我在表单操作中使用片段标识符,因为当出现错误时,表单会在帖子上重新显示,我不希望用户向下滚动它以进行更正。
成功处理表单后,我会执行重定向到同一页面并显示确认消息。我遇到的问题是浏览器preserves the fragment identifier upon 302 redirects。是否有强制浏览器清除/删除片段标识符的技巧?
假设我正在查看用户个人资料页面,页面上有一个地址表单。表单操作为/user/profile#AddressForm
。如果表单提交有错误,页面会自动滚动到地址表单,以便用户可以更正错误。如果没有错误,我想重定向到/user/profile
,它没有片段标识符。我遇到的问题是浏览器保留了片段标识符,页面向下滚动到表单,而不是停留在顶部。
答案 0 :(得分:1)
<强>更新强>
现在我看到实际问题是什么,我建议重定向到不存在的锚
header ('Location: /user/profile#top');
有。
$form->setAction ($this->getRequest ()->getRequestUri ());