2015-02-11 50 views
0

我有一個帶複選框字段的表單,我基本上希望在選中此複選框時在下面顯示一個字段。根據複選框顯示一個字段

我不知道什麼是symfony的最佳做法,以做到這一點...

表單生成器:

public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
     ->add('protected', 'checkbox', array(
      'label' => 'Protected by a password ?', 
      'required' => false, 
      'mapped' => false 
     )) 
     ->add('password', 'password', array(
      'label' => 'Mot de passe', 
      'required' => false 
     )) 
} 

所以,如果「保護」現場檢查,我想顯示「密碼「字段。

+0

你爲什麼不這樣做jQuery? – 2015-02-11 12:01:05

+0

我不知道是否沒有另一種使用Symfony過程的方式 – DOZ 2015-02-11 12:07:31

+1

您可以使用symfony表單事件,如「FormEvents :: POST_SET_DATA事件」(參見http://symfony.com/doc/current/components/form /form_events.html#b-the-formevents-post-set-data-event),但仍需刷新表單(使用ajax或重新加載頁面) – Snroki 2015-02-11 12:26:36

回答

1

我會用jQuery來做到這一點。

隱藏與CSS領域(我建議用一個類來做到這一點,而不是)

->add('password', 'password', array(
    'label' => 'Mot de passe', 
    'required' => false, 
    'attr' => array('style' => 'display:none;') 
)) 

,然後在jQuery的:

$('#checkbox_id').click(function() { 
    $('.password_id')[this.checked ? "show" : "hide"](); 
}); 

我希望這有助於!

+0

感謝您的答案,我最終決定使用jquery來做到這一點 – DOZ 2015-02-12 17:04:30

相關問題