簡體   English   中英

Symfony2驗證和bootstrap / jquery模態

[英]Symfony2 validation and bootstrap/jquery modal

我有以下情況:

我將symfony2-form渲染為模態(使用bootstrap和jQuery)。 當表單無效時,錯誤消息應出現在模式框中。 我像這樣鏈接到模式框:route / to / action#modal

我怎樣才能做到這一點?

在我的模板中,我有一個到模式的簡單鏈接:

<a data-toggle="modal" href="#new">Add member</a>

此鏈接打開一個模式。 里面有一個簡單的表格,標題,名字和姓氏:

{{ form_widget(form.title) }}
{{ form_widget(form.first_name) }}
{{ form_widget(form.last_name) }}

在表單類中,我這樣定義它:

 $builder
        ->add('title', 'text', array('required' => false))
        ->add('first_name')
        ->add('last_name');

因此,標題是可選的,名字和姓氏是必需的。 因此,我將這些行添加到了validate.yml中:

Acme\MemberBundle\Entity\Member:
properties:
    first_name:
        - NotBlank: { message: Please enter a first name }
    last_name:
        - NotBlank: { message: Please enter a last name }

在我的操作(提交表單時稱為操作)中,我有以下幾行:

/**
 * Creates a new Member entity.
 *
 * @Route("/create", name="acme_member_create")
 * @Method("post")
 * @Template("AcmeMemberBundle:Member:index.html.twig")
 */
public function createAction()
{
    $member = new Member();
    $em = $this->getDoctrine()->getEntityManager();
    $request = $this->getRequest();
    $form = $this->createForm(new MemberType(), $member);
    $form->bindRequest($request);

    if ($form->isValid()) {
        $em->persist($member);
        $em->flush();

        return $this->redirect($this->generateUrl('acme_member'));

    }

    $entities = $em->getRepository('AcmeMemberBundle:Member')->findAll();

    return array(
        'entities' => $entities,
        'form'   => $form->createView()
    );
}

因此,當for無效時,我想返回到我的index.html.twig(顯示模式的位置)。

我找到了解決方案!

使用此JavaScript代碼,我可以在頁面加載時顯示模式:

$(window).load(function(){
    $('#new').modal()
}); 

因此,如果表單無效,我將執行此代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM