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 | 1258 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.
J'édite souvent mon message après avoir répondu pour le corriger où y apporter des informations complémentaires alors n'hésitez pas à y jeter un nouveau coup d'oeil ^^