根据复选框显示一个字段

问题描述:

我有一个带复选框字段的表单,我基本上希望在选中此复选框时在下面显示一个字段。根据复选框显示一个字段

我不知道什么是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

我会用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