Symfony 6,根据第一个字段选择显示条件表单字段

问题描述 投票:0回答:1

我想根据“presenceEvent”的选择(设置为“Oui”或“true”)显示或隐藏“presenceDejeuner”和“participerActivite”字段。 Symfony 等待表单验证来识别字段选择,但我需要有条件地显示这些字段。我尝试过使用事件侦听器,但它仅在预先填充字段时才有效。然而,就我而言,他们不是。我怎样才能实现这一点,以及如何使用 JavaScript 动态更改这些字段的“必需”属性?我进行了广泛的搜索,但没有找到解决方案。有什么建议吗?

public function buildForm(FormBuilderInterface $builder, array $options): void
    {
        $builder
            ->add('presenceEvent', ChoiceType::class, [
                'choices' => [
                    'Oui' => true,
                    'Non' => false,
                ],
                'expanded' => false,
                'multiple' => false,
            ])
            ->add('presenceDejeuner', ChoiceType::class, [
                'choices' => [
                    'Oui' => true,
                    'Non' => false,
                ],
                'expanded' => false,
                'multiple' => false,
                'required' => false
            ])
            ->add('participerActivite', EntityType::class, [
                'mapped' => false,
                'class' => Activite::class,
                'choice_label' => 'activite',
                'multiple' => true,
                'expanded' => true,
                'required' => false
            ])
        ;
    }

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

enter image description here

我尝试了 symfony 文档中所说的所有内容,例如 PRE_SET_DATA 、 PRE_SUBMIT 、表单事件等。 也尝试过 Vanilla JS,但它无法识别第一个字段的选择,因为它不会在 HTML 中动态更改

javascript php symfony twig symfony6
1个回答
0
投票

绝对没有人可以帮助我吗?

© www.soinside.com 2019 - 2024. All rights reserved.