我的控制器中有一个常规的silverstripe Form()方法。它按照正常的做事方式提交给Submit()方法。
在页面上,表单位于选项卡中,默认情况下不显示。
是否可以将锚点附加到表单提交的URL,以便在验证失败时显示表单选项卡?
我试图通过添加:
来做到这一点 $form->setFormAction($this->Link(). "/Submit#location-enquiry");
然而,在执行此操作时,表单似乎没有转到Submit()方法。检查chrome工具中发生了什么,它只是发布到:
example/page/Submit
..附加锚
我如何附加锚并仍然处理表单?
答案 0 :(得分:1)
您可以设置是否应将表单重定向回表单名称的哈希验证错误:
//false by default
$form->setRedirectToFormOnValidationError(true);
将在错误重定向中附加表单的名称:
return Director::redirect($pageURL . '#' . $this->FormName());
如果表单没有任何错误,您可以轻松地在处理方法中执行相同操作。