提交后保持物化 CSS 模态表单打开

Posted

技术标签:

【中文标题】提交后保持物化 CSS 模态表单打开【英文标题】:keep materialize CSS modal form open after submit 【发布时间】:2020-10-06 23:40:39 【问题描述】:

我在物化模态中使用表单,但是当我单击提交按钮时,模态将被关闭并重定向,如何在提交后不关闭模态的情况下重新加载具有空字段的现有表单?

        <div class="modal" id="docModalapplications.id" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true" style="height: 500px;">
            <div class="modal-dialog modal-full-height modal-right modal-notify modal-info" style="margin: 0;" role="document">
          ........

             form_start(form) 

                <div class="form_group">
                   <label for="form.nom.vars.id">Nom</label>
                         <input type="text" class="form_control" id="form.nom.vars.id" name="form.nom.vars.full_name" value="form.nom.vars.value" required>
                 form_errors(form.nom)
                % do form.nom.setRendered %
              </div>
                  <!-------BTN AJOUT---------->
                 <input  type="submit" class="btn btn-success" onclick="M.toast(html: 'Lien ajouté !', classes: 'rounded');" value="Ajouter" style="transform: translate(32em);"
                                    id="carto_cartographiebundle_liendocapp_ajouter" name="carto_cartographiebundle_liendocapp[ajouter]">
                  % do form.ajouter.setRendered %
           form_end(form) 
      </div>
 </div>

控制器

      public function indexAction(Request $request)
       

    $em = $this->getDoctrine()->getManager();
    $applications = $em->getRepository('CartoBundle:Application')->findAll();
    $lienDocApp = new LienDocApp();
    $form=$this->createForm(LienDocAppType::class, $lienDocApp);
    $form->handleRequest($request);
    if ($form->isSubmitted()&& $form->isValid())
        $em = $this->getDoctrine()->getManager();
        $em->persist($lienDocApp);
        $em->flush();
        return $this->redirectToRoute('carto_accueil');
    

    return $this->render('CartoBundle:Accueil:index.html.twig', array(
        'applications'=>$applications,
         'lienDocApp' => $lienDocApp,
        'form' => $form->createView(),
    ));

【问题讨论】:

您必须使用基于 ajax 的表单提交,成功后替换模态内容。看看这个问题***.com/questions/42051048/… 【参考方案1】:

有两种方法可以做到这一点。

    正如 F*** 上面提到的,您可以使用基于 ajax 的表单提交来刷新模态框的内容 - 这应该相对容易做到。

    您可以让表单重定向到同一页面,并将一个变量传回页面,告诉它加载模式。它可能并不完美,因为模式会在页面加载后打开,但有时人们可能更喜欢这样。你可以看看这个问题:How I can open a materialize modal when a window is ready?

【讨论】:

以上是关于提交后保持物化 CSS 模态表单打开的主要内容,如果未能解决你的问题,请参考以下文章

bootstrap模态框中表单怎么提交表单

根据提交结果隐藏表单打开显示文本

即使我有错误Vuejs,提交表单后模态也会关闭

停止提交表单,直到在 ajax 中打开模式

阻止模态按钮提交它所在的表单

如果模态关闭并重新打开或验证捕获丢失的输入,则使用 .one 提交的模态表单提交多个