Montrer ou cacher un element dans un formulaire symfony avec Javascrip

LGCV
Invité n'ayant pas de compte PHPfrance

08 sept. 2020, 15:23

Bonjour,

J'ai un formulaire CRUD avec un selector à choix multiple. Lorsque je selectione 'Website' j'aimerais que mon champs 'URL' apparaissent. J'essaye de le faire avec du JS mais cela ne fonctionne pas pour le moment.

SourceType :
{
        $builder
            ->add('Type', ChoiceType::class, [
                'label' => 'Type',
                'choices' => [
                    'Website' => 'Website',
                    'inApp'   => 'inApp',
                    'BoxTV'   => 'BoxTv',
                    'tvOS'    => 'tvOS',
                ],
            ])
            ->add('Url', HiddenType::class, [
                'label'    => 'Url',
                'required' => false,
            ])
Fichier Js :
 $(document).ready(function () {
    $('#Url ').change(function() {
        if ($('select[id$="source.url"]>option:selected').text() === "Website") {
            $('#vka_number ').show();
        }
        else {
            $('#vka_number').hide();
        }
    });
});
Merci pour vos idées et retour !

Avatar du membre
Mammouth du PHP | 1609 Messages

09 sept. 2020, 14:29

Salut, étant donné que c'est un input hidden forcément il ne s'affiche pas. Tu devrais plutôt utiliser le bon type pour ton champ url (un UrlType ?) et gérer son affichage via le javascript selon la valeur du select.
Développeur web depuis + de 20 ans