Php 根据复选框显示字段

Php 根据复选框显示字段,php,forms,symfony,twig,Php,Forms,Symfony,Twig,我有一个带有复选框字段的表单,我希望基本上当选中此复选框时,在下面显示一个字段 我不知道symfony的最佳实践是什么 表格生成器: public function buildForm(FormBuilderInterface $builder, array $options) { ->add('protected', 'checkbox', array( 'label' => 'Protected by a password ?',

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

我不知道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
        ))
}

因此,如果选中了字段“protected”,我想显示“password”字段。

我会使用jquery来实现这一点

用css隐藏字段(我建议改为用类)

然后在jquery中:

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

我希望这有帮助

为什么不使用jQuery?我想知道是否还有其他方法使用Symfony进程您可以使用Symfony表单事件,例如
FormEvents::POST\u SET\u DATA Event
(cf:),但您仍然需要刷新表单(使用ajax或重新加载页面)我不想刷新页面,我想在@Coussinsky动态地执行此操作,然后您必须在复选框上附加一个js事件,并使用ajax调用您的表单,以便在不重新加载页面的情况下重新加载表单(或使用nodejs)。谢谢您的回答,我最后决定也使用jquery来执行此操作
$('#checkbox_id').click(function() {
     $('.password_id')[this.checked ? "show" : "hide"]();
});