Динамически скрывать / отображать текст ввода «Другое» в форме событий Symfony 4 - PullRequest
0 голосов
/ 05 августа 2020

Я хочу динамически отображать / скрывать вводимый текст (autreType) в моей форме, если другое поле выбора (тип) имеет значение «Autre». Я пробовал это в своей форме Symfony 4:

    ...
use Symfony\Component\Form\FormEvent;
use Symfony\Component\Form\FormEvents;
...

class ContactType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
...  
    $builder->add('type',                   ChoiceType::class, array(
                    'choices' => $choices_type,
                    'expanded' => false,
                    'multiple' => false,
                    'required' => true,
                    'error_bubbling' => true,
                ))
    ... ;
    $builder->get('type')->addEventListener(
      FormEvents::PRE_SET_DATA,
                function (FormEvent $event)
                {
                    $form = $event->getForm();
                    $contact = $event->getData();
                    
                    $form->getParent()->add('autreType', TextType::class, array(
                        'error_bubbling' => true,
                        'required' => false,
                        'disabled' => false
                    ));         
                }
            );
    }


    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults([
            'data_class' => Contact::class,
        ]);
    }
}

Но текст ввода autreType всегда отображается ...

Я попытался добавить -> ('autreType'. .. в условии if ($ event-> getData () -> getType () == "Autre"), но теперь оно вообще не отображается.

Может ли кто-нибудь сказать мне, что я делаю не так, пожалуйста?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...