Symfony,隐藏的表格字段

时间:2013-11-18 16:42:36

标签: forms symfony field

我在隐藏表单字段时遇到问题。例如:

        ->add('new_password', 'repeated', array(

            'first_options' => array(
                'label' => 'Nowe hasło',
                'attr'  =>  array('style'=>'display:none;')),
            'second_options' => array(
                'label' => 'Powtórz nowe hasło',
                'attr'  =>  array('style'=>'display:none;')),
            'mapped' => false,
            'required' => false,
        ));

字段不可见但标签可见。我想隐藏字段但标签应隐藏到。我想在点击按钮后在Jquery中显示它。任何想法的家伙?

2 个答案:

答案 0 :(得分:4)

首先,这不是Hidden Field Type,而是您想要通过传递style='display:none;'属性来隐藏的重复类型。

通常,如果您不想显示给定标签,则可能需要自定义表单呈现。

例如,

{{ form_row(yourForm.new_password) }} {# in case you're using the form_row helper #}

应替换为

{{form_widget(yourForm.new_password) }}

因为form_row(yourForm.yourField)实际上是

的快捷方式
{{ form_errors(yourForm.yourField) }}
{{ form_label(yourForm.yourField) }}
{{ form_widget(yourForm.yourField) }}

此外,

为什么需要以这种方式隐藏重复的密码字段?

答案 1 :(得分:3)

如果您只想在单击按钮时显示它,为什么不将newPassword小部件包装在显示无的div中?

但是如果你想为标签添加属性,可以使用label_attr选项,如下所示:

{{ form_row(form.name, {'label_attr ':{'class':'hidden'}}) }}

->add('new_password', 'repeated', array(

            'first_options' => array(
                'label' => 'Nowe hasło',
                'label_attr'  =>  array('style'=>'display:none;')),
            'second_options' => array(
                'label' => 'Powtórz nowe hasło',
                'label_attr'  =>  array('style'=>'display:none;')),
            'mapped' => false,
            'required' => false,
        ));