Découvrez comment utiliser des composants personnalisés pour créer des champs qui nécessitent une logique ou une interface utilisateur particulières à l’aide de JavaScript, HTML et CSS.
Le champ personnalisé vous permet d’enrichir l’apparence de vos formulaires et d’ajouter une logique puissante avec JavaScript, HTML et CSS.Le champ personnalisé comprend des méthodes internes qui facilitent la transmission des données au formulaire, l’ajout de validations côté client et côté serveur, ainsi que la gestion d’événements courants comme focus ou blur.Vous pouvez utiliser le champ personnalisé pour créer :
Des champs avec une structure de données personnalisée.
Exemple : objets, tableau de chaînes de caractères
Des champs qui utilisent des widgets tiers.
Exemple : autocomplétion d’adresse Google
Des champs avec une logique permettant de masquer ou d’afficher d’autres champs.
Des champs qui nécessitent des API externes pour obtenir une valeur.
Pour utiliser des champs personnalisés, vous devez activer les Domaines personnalisés. Le rendu d’un formulaire contenant un champ personnalisé en dehors d’un domaine personnalisé affichera une erreur.
Ajoutez des paires clé-valeur à utiliser dans le code source du champ personnalisé. Les paires clé-valeur peuvent inclure des variables de champs du formulaire.
Les valeurs des paramètres ne sont accessibles qu’après l’appel de la méthode init() par le formulaire.
Exemple :Dans l’exemple ci-dessous, les paramètres du champ personnalisé sont définis avec les paires clé-valeur symbol={{fields.symbol}} et separator=,
function CustomComponent(context) { const input = document.createElement('input'); let mask = null; function mountComponent() { /** La méthode getParams() retourne les params que vous avez configurés dans votre champ */ const config = context.custom.getParams(); const { symbol, separator } = config; mask = IMask(input, { mask: `${symbol}num`, blocks: { num: { mask: Number, thousandsSeparator: separator, } } }); } return { /** Invoqué une seule fois à la création du champ */ init() { mountComponent(); return input; }, ... };}
Par défaut, le champ personnalisé accepte n’importe quel format de valeur. Toutefois, vous pouvez utiliser JSON Schema pour valider les valeurs côté serveur.
Appelée une seule fois lors de la création du champ et reçoit les valeurs de params que vous configurez dans les paramètres de Params.Retourne un élément HTML, une chaîne de caractères ou aucune valeur.Exemple:
Appelée lorsque l’utilisateur revient à la même étape du formulaire.Cette option est utile lorsque vous devez relancer la logique de rendu de l’UI ou actualiser les valeurs des params qui ont pu changer.
Invoquée lorsque le formulaire doit récupérer la valeur du champ personnalisé une ou plusieurs fois. Cette fonction est généralement appelée lorsque l’utilisateur soumet l’étape du formulaire. Si vous devez effectuer des validations côté client, vous pouvez lever une erreur pour afficher un message d’erreur personnalisé à l’utilisateur.Exemple :
function customTextInput() { const input = document.createElement('input'); input.type = 'text'; return { init() { return input; }, getValue() { if (input.value !== 'Auth0') { throw new Error('The value must be Auth0') } return input.value; } };}
Appelée lorsque le champ personnalisé doit être bloqué. Elle est généralement exécutée lorsque l’utilisateur soumet l’étape du formulaire et que les données sont en cours de traitement sur notre backend.
Appelée lorsque le champ personnalisé doit être débloqué. Cette opération est généralement exécutée après que l’utilisateur a soumis l’étape du formulaire ou que le traitement des données par notre back-end a cessé en raison d’une erreur de validation.
Lorsque vous devez interagir avec le formulaire pour obtenir les valeurs d’autres champs ou passer à d’autres étapes du formulaire, vous pouvez utiliser les méthodes de formulaire suivantes :
Valide les valeurs de champ existantes au moyen de la validation côté client avant de poursuivre. Si un champ ne satisfait pas à la validation, un message d’erreur s’affiche.
getNode() | true Retourne l’élément HTML racine du champ.
getValue() Retourne la valeur du champ.
setRequired(boolean) Définit ou supprime le caractère obligatoire du champ.
Paramètre
Description
id
*String *. La valeur du champ ID.
Exemple :
const fullName = context.form.getField('full_name');const fullNameValue = fullName.getValue();console.log(fullNameValue); // Jean Dupont
setRequired() sert uniquement à définir ou à retirer le caractère obligatoire du champ côté client. Par exemple, si vous retirez le caractère obligatoire d’un champ, mais qu’il est marqué comme obligatoire dans les paramètres du champ, le formulaire renverra une erreur si ce champ n’a aucune valeur.