Système de design GCComposants
Système de design GC Démarrer Aperçu des modèles de pagePage de base Aperçu des composantsAlerteAvisBarre de navigation latéraleBarre de navigation supérieureBascule de langueBoutonBoutons radioCarteCases à cocherChamp de dateChamp de saisieChemin de navigationConteneurDate de modificationDétailsEn-têteGrilleIcôneIndicateur d'étapeJeu de champsLienMasquage accessibleMenu thématiqueMessage d'erreurPaginationPied de pageRechercheRésumé des erreursSélectionSignatureTableauTéléverseur de fichiersTexteTitreZone de texte Aperçu des raccourcis CSS Réinitialisation des styles Mise en page réactiveÉtat Dimensionnement de la boîteDimensionnement du conteneurAffichageDébordementPositionVisibilité PoliceFamille de policeTaille de policeStyle de policeÉpaisseur de policeHauteur de ligneCouleur de lienTaille de lienDécoration de texte de lienStyle de listeAlignement de texteCouleur de texteDébordement de texteTransformation de texteSaut de mot MargeMarge intérieure Alignement de contenuAlignement des élémentsAlignement individuelÉlément flexibleDirection de l’élément flexibleÉlargissement de l’élément flexibleRétrécissement de l’élément flexibleHabillage de l’élément flexibleDégagementColonnes de grilleLignes de grilleJustification de contenuJustification des élémentsJustification individuelleOrdreAgencement de contenuAgencement des élémentsAgencement individuel Couleur de l'arrière-planCouleur de la bordureRayon de la bordureStyle de la bordureLargeur de la bordure Noms des icônesTaille de l'icôneImage CurseurÉvénements de pointeurTransition Aperçu des stylesUnités de styleCouleurEspacementTypographie Nous contacterS'impliquerTrouvez une démo

Valider les composants de formulaire

Validation et messages d’erreur intégrés

Les composants de formulaire de Système de design GC ont une propriété de validation intégrée. La validation s’exécute par défaut lors de l’évènement blur. Les champs comportant des exigences de saisie spécifiques seront validés même s’ils ne sont pas obligatoires. En cas de saisie manquante ou invalide, un message d’erreur intercalé prédéfini s’affichera.
ComposantRaisonMessage d'erreur
Cases à cocher
(gcds-checkboxes)
Groupe : valeur manquante Choisissez une option pour continuer.
Simple : valeur manquante Vous devez cocher la case pour continuer.
Champ de date
(gcds-date-input)
Toutes valeurs manquantes Saisissez la date.
Mois manquant Saisissez le mois.
Mois manquant Sélectionnez un mois.
Année manquante Saisissez l'année.
Journée manquante Saisissez le jour.
Mois et jour manquants Saisissez le jour et sélectionnez un mois.
Mois et année manquants Sélectionnez un mois et saisissez l'année.
Mois et jour manquants Saisissez le mois et le jour.
Mois et année manquants Saisissez l'année et le mois.
Jour et année manquants Saisissez le jour et l'année.
Longueur d'année invalide L'année doit inclure 4 chiffres.
Année invalide Saisissez une année valide.
Mois invalide Saisissez un mois valide.
Jour invalide Saisissez un jour valide.
Nombre invalide : min Saisissez un nombre égal ou supérieur à {min} pour continuer.
Nombre invalide : max Saisissez un nombre égal ou inférieur à {max} pour continuer.
Téléverseur de fichiers
(gcds-file-uploader)
Fichier manquant Vous devez téléverser un fichier pour continuer.
Champ de saisie
(gcds-input)
Courriel manquant ou invalide Saisissez votre adresse courriel pour continuer. Utilisez un format standard. Exemple: nom@adresse.ca.
URL manquante ou invalide Saisissez une adresse Web dans le format indiqué pour continuer.
Format invalide Utilisez le format indiqué pour continuer.
Longueur invalide: trop long Saisissez {max} caractères ou moins pour continuer. Vous avez saisi {current} caractères.
Longueur invalide: trop court Saisissez au moins {min} caractères pour continuer. Vous avez saisi {current} caractères.
Nombre invalide : min Saisissez un nombre égal ou supérieur à {min} pour continuer.
Nombre invalide : max Saisissez un nombre égal ou inférieur à {max} pour continuer.
Nombre invalide : étape Saisissez un nombre parmi les options disponibles pour continuer. Les nombres les plus proches de celui que vous avez saisi sont {lower} et {upper}.
Nombre manquant Entrez un nombre pour continuer.
Valeur manquante Saisissez des renseignements pour continuer.
Courriel manquant Saisissez votre adresse courriel pour continuer. Utilisez un format standard. Exemple: nom@adresse.ca.
Boutons radio
(gcds-radios)
Valeur manquante Choisissez une option pour continuer.
Sélection
(gcds-select)
Valeur manquante Choisissez une option pour continuer.
Zone de texte
(gcds-textarea)
Format invalide Utilisez le format indiqué pour continuer.
Longueur invalide: trop long Saisissez {max} caractères ou moins pour continuer. Vous avez saisi {current} caractères.
Longueur invalide: trop court Saisissez au moins {min} caractères pour continuer. Vous avez saisi {current} caractères.
Valeur manquante Saisissez des renseignements pour continuer.

Activer la validation par défaut

  • Utilisez l’attribut required sur les composants de formulaire pour activer la validation des champs obligatoires.
  • Désactivez la validation du navigateur en ajoutant novalidate à la balise de formulaire.

Fonctionnement de la validation

Les composants de formulaire de Système de design GC sont validés au moyen d’une série de propriétés, d’événements et d’objets de validation.

Propriétés de validation

La validation est contrôlée par les propriétés validator et validate-on. | validator | validate-on | | -------- | ------- | | Détermine ce qui doit être validé. | Détermine quand l’action de validation aura lieu. | | Le composant de formulaire validera un ensemble de fonctions selon l’ordre dans lequel elles apparaissent. |
  • blur : La vérification se produit dès qu’une personne clique en dehors du champ ou le quitte par tabulation.
  • submit : La vérification se produit lorsque le formulaire est soumis.
  • other: La vérification se fait lors d’un autre événement défini par le développeur ou la développeuse à l’aide de la méthode validate() sur chaque composant.
|

Javascript

const gcdsComponent = document.querySelector('gcds-input');

gcdsComponent.validator = [customValidation()];

React

<GcdsInput
  validator={[customValidation()]}
/>

Blur

<gcds-input
  name="blur-validate"
  label="Validate on blur"
  required
  validate-on="blur"
></gcds-input>

Submit

<gcds-input
  name="submit-validate"
  label="Validate on submit"
  required
  validate-on="submit"
></gcds-input>

Other

<gcds-input
  name="other-validate"
  label="Validate on other"
  required
  validate-on="other"
></gcds-input>

Événements de validation

Après l’exécution de la validation, les composants de formulaire génèrent un événement gcdsError ou gcdsValid. | gcdsError | gcdsValid | | -------- | ------- | | Les données n’ont pas passé les contrôles de validation. | Les données ont passé les contrôles de validation. | | L’événement contiendra un detail avec le message d’erreur associé. Ce message d’erreur s’affichera sur le composant. | Aucun message d’erreur ne s’affichera. |

Objets de validation

Chaque validation possède une propriété validate qui peut être appelée par le composant de formulaire. La propriété validate génère un objet avec plusieurs propriétés que le composant peut lire :
  • La propriété valid contient une valeur booléenne indiquant si la valeur soumise par le composant de formulaire satisfait aux critères de validation.
  • La propriété reason contient un objet avec les propriétés en et fr, qui contiennent le texte du message d’erreur dans chaque langue.
  • La propriété errors est une propriété facultative conçue pour les composants de formulaire plus complexes comportant plusieurs éléments. Elle contient un objet avec des propriétés booléennes indiquant au composant de formulaire quel élément est invalide. La nécessité de cette propriété dans un validateur sera définie lors de la création de chaque composant de formulaire.
// Required field validator used in gcds-input
const requiredField: Validator<string> = {
  validate: (value: string) => {
    return {
      valid: value != null && value.trim() != '',
      reason: {
        en: 'Enter information to continue.',
        fr: 'Saisissez des renseignements pour continuer.',
      },
    };
  },
};

Retour de validator

interface ValidatorReturn {
  valid: boolean;
  reason: {
    en: string;
    fr: string;
  };
  errors?: object;
}

Retour de validator avec errors

date-input {
  valid: boolean;
  reason: {
    en: string;
    fr: string;
  };
  errors: {
    year: boolean;
    month: boolean;
    day: boolean;
  }
}

Personnaliser la validation et les messages d’erreur

En utilisant une combinaison de propriétés et d’événements personnalisables, vous pouvez mettre en œuvre une validation qui répond à vos besoins.
  • Ajoutez une validation personnalisée à l’aide de la propriété validator.
  • Modifiez l’événement de validation à l’aide de la propriété validate-on.
<gcds-input
  input-id="form-name"
  label="Nom de la bibliothèque de composants"
  name="library-name"
  required
></gcds-input>

<script>
  const input = document.querySelector('gcds-input[name="library-name"]');

  const libraryName = () => {
    return {
      validate: value => {
      return {
        valid: value === '@gcds-core/components',
        reason: {
          en: `The entered value must be '@gcds-core/components'.`,
          fr: `La valeur saisie doit être « @gcds-core/components ».`,
        },
      };
      },
    };
  };

  input.validator = [libraryName()];
</script>

Format de la propriété validator pour différents composants

Le format de la propriété ’validator’ sera légèrement différent selon les composants de formulaire.

Format de la propriété validator pour gcds-checkboxes :

const validator = () => {
  return {
    validate: value: string[] => {
      return {
        valid: boolean,
        reason: {
          en: string,
          fr: string,
        },
      };
    },
  };
};
</script>

Format de la propriété validator pour gcds-date-input :

const validator = () => {
  return {
    validate: value: string => {
      return {
        valid: boolean,
        reason: {
          en: string,
          fr: string,
        },
        errors: {
          year: boolean,
          month: boolean,
          day: boolean,
        },
      };
    },
  };
};
</script>

Format de la propriété validator pour gcds-file-uploader :

const validator = () => {
  return {
    validate: value: FileList => {
      return {
        valid: boolean,
        reason: {
          en: string,
          fr: string,
        },
      };
    },
  };
};
</script>

Les propriétés validator pour les composants gcds-input, gcds-select, gcds-textarea, gcds-radios suivent le même modèle.

Format de leur propriété validator respectif :

const validator = () => {
  return {
    validate: value: string => {
      return {
        valid: boolean,
        reason: {
          en: string,
          fr: string,
        },
      };
    },
  };
};
</script>
Aidez-nous à nous améliorer Vous avez des questions ou des demandes? Faites-nous part de vos commentaires à l'aide de notre formulaire de contact. Quelque chose ne va pas? Signalez-le sur GitHub en créant un compte. Vous pourrez accéder aux réponses de l'équipe, suivre les progrès réalisés concernant votre problèmes et voir les problèmes signalés par d'autres personnes. Fournir des commentaires Signaler un problème sur GitHub
2026-07-20