Skip to main content

Il se peut parfois que nous ayons un champ "HiddenType" dans un formulaire et que ce champ soit complété par une étape en dehors du formulaire (exemple : un service qui permet de choisir un revendeur sur une carte Google).
Nous aimerions avoir une validation sur ce champ et nous utilisons également la librairie jquery-validate. Voici comment procéder.

Pour commencer il vous faut ajouter le validateur sur le champ dans la methode buildForm() dans votre classe. Ici nous voulons qu'il soit obligatoire :

public function buildForm(FormBuilderInterface $builder, array $options) {

    $builder
      ->add(...)
      ...
      ->add('dealer_code', HiddenType::class, array(
        'required' => true,
      ));
  }

Dans votre vue Twig, il sera nécessaire d'afficher le message de validation à l'endroit où vous voulez qu'il s'affiche :

<div class="input-field col-md-12">
            <span>Choisissez un revendeur</span>
            {{ form_widget(form.selectionner) }} {# ici un bouton qui nous renvoit vers notre service de localisation de revendeur #}
            {{ form_errors(form.dealer_code) }} {# nous décidons d'afficher le message d'erreur ici sans quoi ce message s'affichera en dessous de tous les champs du formulaire #}
            {{ form_widget(form.dealer_code) }}
</div>

Au niveau de jquery-validate il faudra ajouter l'option "ignore" avec un array vide sinon le validateur sur les champs de type "hidden" seront ignorés :

$("#formValidate").validate({
        ignore: [],
        ...,
        messages: {
             dealer_code: {
                  required: "Veuillez choisir un revendeur"
             }
        },
});

 

Étiquettes
Discutons de votre projet

Contactez-nous

  •  + 32 (0) 10 49 51 00
  •  info@expert-it.com