L'onglet « Conditions et règles » dans les paramètres du formulaire est l'éditeur visuel moderne dédié à la logique des champs : afficher/masquer des champs, rendre des champs obligatoires de manière dynamique, calculer des valeurs, filtrer des options. C'est la méthode recommandée pour la plupart des cas d'utilisation.
> ⚠️ Statut bêta : la fonctionnalité est disponible, mais nous continuons à tester les cas limites. Si une configuration spécifique ne réagit pas comme prévu : envoyez un bref e-mail à hello@propform.io en indiquant l'ID du formulaire — nous y jetterons un œil.
Pour chaque règle, vous sélectionnez une action qui sera exécutée si la condition est remplie : | Action | Effet | | Masquer | Le champ n'est plus affiché (la valeur reste vide lors de la soumission) | | Afficher | Les champs masqués par défaut sont rendus visibles | | Rendre obligatoire | La validation impose la saisie avant la soumission | | Verrouiller | Le champ reste visible mais n'est pas modifiable (par exemple après la première soumission) | | Masquer des options | En sélection simple/multiple : supprimer certaines valeurs de la sélection | | Définir une valeur | Le champ reçoit une valeur fixe | | Calculer une valeur | Le champ reçoit le résultat d'une formule (voir ci-dessous) | | Modifier le libellé | Remplacer dynamiquement le libellé du champ (par ex. « Prix d'achat » → « Prix de location ») |
Les conditions vérifient la valeur d'un autre champ. Opérateurs disponibles :
ist gleich / ist nicht gleichist leer / ist nicht leerenthält / enthält nicht (pour les champs à sélection multiple et les champs de texte)ist größer als / ist kleiner als (pour les nombres)ist größer-gleich / ist kleiner-gleichPlusieurs conditions par règle sont liées par ET (toutes doivent être remplies) ou OU (une seule suffit) — à choisir pour chaque règle.
L'action « Calculer la valeur » vous permet de combiner arithmétiquement les valeurs de plusieurs champs — par exemple, calculer automatiquement une commission interne à partir du prix d'achat et du pourcentage de commission.
La formule utilise une syntaxe pipe avec des identifiants de champ :
{{multiply:field:125802|field:125803|/100}}
→ multiplie les valeurs des champs 125802 et 125803, puis divise le résultat par 100.
Exemple de configuration : trois champs dans le formulaire — Kaufpreis (champ numérique), Prozent Innenprovision (champ numérique), Summe Innenprovision (champ numérique).
1. Trouver les identifiants de champ
L'ID de champ correspond à l'ID DOM de l'élément <input> dans le formulaire. Voici comment le trouver :
<div> environnant — l'ID du champ se trouve dans la propriété ID (par exemple, 125802)2. Créer une règle
Onglet « Conditions et règles » → Nouvelle règle :
Kaufpreis n'est pas vide ET Prozent Innenprovision n'est pas videSumme Innenprovision{{multiply:field:<ID-Kaufpreis>|field:<ID-Provisions-Prozent>|/100}}
3. Test en direct
Ouvrir le formulaire → Saisir le prix d'achat → Saisir le pourcentage de commission → Le total est calculé automatiquement.
Les opérateurs sont enchaînés à l'aide du pipe | :
| Modèle | Signification | Exemple |
|---|---|---|
multiply:... |
Multiplication | `multiply:field:A |
add:... |
Addition | `add:field:A |
subtract:... |
Soustraction | `subtract:field:A |
divide:... |
Division | `divide:field:A |
/<zahl> |
Division par une valeur fixe | `multiply:field:A |
*<zahl> |
Multiplication par une valeur fixe | `add:field:A |
field: vs. field_value:| Syntaxe | Quand l'utiliser ? |
|---|---|
field:<ID> |
Pour les champs numériques : renvoie la valeur saisie. Pour les sélection simple : renvoie le nom clair (par ex. « Appartement ») |
field_value:<ID> |
Pour les sélection simple : renvoie la clé technique (par ex. ind_3673). Important pour les comparaisons dans les conditions IF() |
Pour les champs purement numériques, field: et field_value: renvoient la même chose — les deux fonctionnent.
> 💡 Remarque UX : La configuration actuelle via les identifiants DevTools et la syntaxe Pipe n'est pas très intuitive. Un éditeur de formules visuel est prévu dans la feuille de route.
La plupart des actions sont appliquées de manière sticky (unidirectionnelle) — dès que la condition est remplie une fois, l'effet persiste, même si la condition redevient fausse. Seules quelques actions reviennent automatiquement à leur état d'origine (bidirectionnelle).
| Action | Comportement |
|---|---|
| Masquer / Afficher | Unidirectionnel (sticky) — l'état d'affichage défini reste inchangé ; pour l'inverse, tu as besoin d'une deuxième règle |
| Verrouiller / Déverrouiller | Unidirectionnel |
| En lecture seule / Modifiable | Unidirectionnel |
| Champ obligatoire / Facultatif | One-Way (STICKY) — lorsque la condition redevient fausse, l'état « obligatoire » est conservé |
| Masquer les options | Two-Way — les options sont automatiquement réaffichées lorsque la condition devient fausse |
| Réafficher les options | One-Way (sticky show) |
| Définir la valeur / calculer (champs standard) | One-Way — la valeur définie est conservée |
| Définir la valeur pour les champs image/vidéo | Two-Way — src est automatiquement réinitialisé à sa valeur d'origine |
| Modifier le libellé | Two-Way — le libellé d'origine réapparaît automatiquement lorsque la condition devient fausse |
> 💡 Pour les actions de type One-Way : si tu souhaites les annuler, tu as besoin d'une deuxième règle avec la condition inverse, qui rétablit l'état d'origine. Exemple : une règle affiche le champ, une deuxième règle le masque à nouveau.
Lorsque plusieurs règles s'appliquent au même champ (par exemple, la règle 1 définit la valeur sur X, la règle 2 définit la valeur sur Y), c'est la priorité qui décide :
> 💡 Bonnes pratiques : attribuez délibérément des priorités par incréments de 10 (10, 20, 30, …) afin de pouvoir en insérer d'autres par la suite.
Vermarktungsart = MieteKaufpreis → modifier le libellé en KaltmieteKaufpreis → Ajouter le suffixe (€/Monat)Provisionsfrei = JaProvision Außen, Provisions-Prozent, MwSt. → MasquerVertragsart = KaufvertragKäufer-Vorname + Käufer-Nachname → Champs obligatoiresKaufpreis n'est pas vide ET Provisions-Prozent n'est pas videSumme Innenprovision → Calculer la valeur → {{multiply:field:KAUFPREIS_ID|field:PROZENT_ID|/100}}Bundesland = BayernRegion → Masquer les options → toutes sauf les régions bavaroises_calculate(IF(...)) pour les URL des pages de remerciement