根据复选框显示一个字段
问题描述:
我有一个带复选框字段的表单,我基本上希望在选中此复选框时在下面显示一个字段。根据复选框显示一个字段
我不知道什么是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
))
}
所以,如果“保护”现场检查,我想显示“密码“字段。
答
我会用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
你为什么不这样做jQuery? – 2015-02-11 12:01:05
我不知道是否没有另一种使用Symfony过程的方式 – DOZ 2015-02-11 12:07:31
您可以使用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