我创建了一个简单的一个寻呼机,其优势在于顶部和中间,而在底部则是注册。
我目前正在测试表单验证。当我输入无效信息来测试错误处理时,控制器正确返回列出错误的同一页面,但页面返回到最顶层,用户将看不到有任何错误消息。事实上,他们可能认为一切顺利。
我可以选择将表单移动到新页面,但我想首先看看是否可以将焦点重新放在当前表单所在页面的底部。
我不希望通过javascript和变通办法进入这里的重大事业。如果没有太多努力就可以实现,但如果只是将注册表单移动到另一个页面更容易,那我就去那里。
码?我不确定这里的代码是什么。控制器是否控制页面滚动?
控制器:
public function indexAction(Request $request)
{
$em = $this->getDoctrine()->getManager();
$signUp = new SignUp();
$form = $this->createForm(new SignUpType(), $signUp);
$form->handleRequest($request);
if ($form->isValid()) {
$em->persist($signUp);
$em->flush();
return $this->redirect($this->generateUrl('japps_lfm_default_thanks'));
}
return $this->render('JAppsLFMBundle:AB:a.html.twig', array('form' => $form->createView(),));
}
答案 0 :(得分:0)
简单解决方案是使用锚点。
示例:
您的表单可以使用id属性,您的表单操作可以在网址中使用此ID:
<form id="my-form" action="{{ path('my_route') }}#my-form" ...>
...
</form>
现在,如果您提交表单并且出现错误,浏览器应跳转到表单。
旁注:滚动是客户端的事情,因此PHP无法帮助您。只有JavaScript或这种基于哈希的简单解决方案。