La scheda "Condizioni e regole" nelle impostazioni del modulo è l'editor visivo più moderno per la logica dei campi: mostra/nascondi campi, rendi obbligatori i campi in modo dinamico, calcola valori, filtra opzioni. È il metodo consigliato per la maggior parte dei casi d'uso.
> ⚠️ Stato beta: la funzionalità è attiva, ma stiamo ancora testando i casi limite. Se una configurazione specifica non reagisce come previsto: invia una breve e-mail a hello@propform.io con l'ID del modulo — daremo un'occhiata.
Per ogni regola, scegli un'azione che verrà eseguita se la condizione è soddisfatta: | Azione | Effetto | | Nascondi | Il campo non viene più visualizzato (il valore rimane vuoto al momento dell'invio) | | Mostra | I campi nascosti di default vengono resi visibili | | Rendi obbligatorio | La convalida richiede l'inserimento di dati prima dell'invio | | Blocca | Il campo rimane visibile ma non modificabile (ad es. dopo il primo invio) | | Nascondi opzioni | In caso di selezione singola/multipla: rimuovi determinati valori dalla selezione | | Imposta valore | Il campo riceve un valore fisso | | Calcola valore | Il campo riceve il risultato di una formula (vedi sotto) | | Modifica etichetta | Sostituisce dinamicamente l'etichetta del campo (ad es. "Prezzo di acquisto" → "Prezzo di affitto") |
Le condizioni verificano il valore di un altro campo. Operatori disponibili:
ist gleich / ist nicht gleichist leer / ist nicht leerenthält / enthält nicht (per campi a selezione multipla e campi di testo)ist größer als / ist kleiner als (per i numeri)ist größer-gleich / ist kleiner-gleichPiù condizioni per ogni regola vengono collegate con AND (devono essere tutte soddisfatte) o OR (ne basta una) — selezionabile per ogni regola.
Con l'azione "Calcola valore" puoi collegare aritmeticamente i valori di più campi — ad es. calcolare automaticamente una commissione interna dal prezzo di acquisto e dalla percentuale di commissione.
La formula utilizza una sintassi pipe con ID campo:
{{multiply:field:125802|field:125803|/100}}
→ moltiplica i valori dell'ID campo 125802 e dell'ID campo 125803, divide il risultato per 100.
Esempio di configurazione: tre campi nel modulo — Kaufpreis (campo numerico), Prozent Innenprovision (campo numerico), Summe Innenprovision (campo numerico).
1. Individuare gli ID dei campi
L'ID del campo è l'ID DOM dell'elemento <input> nel modulo. Ecco come trovarlo:
<div> circostante — l'ID del campo si trova nella proprietà ID (ad es. 125802)2. Creare una regola
Scheda "Condizioni e regole" → Nuova regola:
Kaufpreis non è vuoto E Prozent Innenprovision non è vuotoSumme Innenprovision{{multiply:field:<ID-Kaufpreis>|field:<ID-Provisions-Prozent>|/100}}
3. Test dal vivo
Aprire il modulo → Inserire il prezzo di acquisto → Inserire la percentuale di commissione → Il totale viene calcolato automaticamente.
Gli operatori vengono concatenati con la pipe |:
| Modello | Significato | Esempio |
|---|---|---|
multiply:... |
Moltiplicazione | `multiply:field:A |
add:... |
Addizione | `add:field:A |
subtract:... |
Sottrazione | `subtract:field:A |
divide:... |
Divisione | `divide:field:A |
/<zahl> |
Divisione per valore fisso | `multiply:field:A |
*<zahl> |
Moltiplicazione per valore fisso | `add:field:A |
field: vs. field_value:| Sintassi | Quando utilizzare? |
|---|---|
field:<ID> |
Per i campi numerici: restituisce il valore inserito. Per selezione singola: restituisce il nome descrittivo (ad es. "Appartamento") |
field_value:<ID> |
Per selezione singola: restituisce il valore chiave tecnico (ad es. ind_3673). Importante per i confronti nelle condizioni IF() |
Per i campi numerici puri, field: e field_value: forniscono lo stesso risultato — entrambi funzionano.
> 💡 Nota UX: l'attuale configurazione tramite ID DevTools e sintassi pipe non è molto intuitiva. Un editor visivo di formule è in programma.
La maggior parte delle azioni viene applicata in modo sticky (unidirezionale): una volta soddisfatta la condizione, l'effetto rimane attivo anche se la condizione torna a essere falsa. Solo poche azioni tornano automaticamente allo stato originale (bidirezionale).
| Azione | Comportamento |
|---|---|
| Nascondi / Mostra | Unidirezionale (sticky) — lo stato di visibilità impostato rimane; per invertire l'operazione è necessaria una seconda regola |
| Blocca / Sblocca | Unidirezionale |
| Sola lettura / Modificabile | Unidirezionale |
| Campo obbligatorio / Facoltativo | One-Way (STICKY) — quando la condizione torna a essere falsa, lo stato di obbligatorio rimane |
| Nascondi opzioni | Two-Way — le opzioni vengono automaticamente mostrate nuovamente quando la condizione diventa falsa |
| Mostra nuovamente opzioni | One-Way (sticky show) |
| Imposta valore / calcola (campi standard) | One-Way — il valore impostato rimane |
| Imposta valore per campi immagine/video | Two-Way — src viene automaticamente reimpostato al valore originale |
| Modifica etichetta | Two-Way — l'etichetta originale ritorna automaticamente quando la condizione diventa falsa |
> 💡 Per le azioni che sono One-Way: se vuoi annullarle, hai bisogno di una seconda regola con la condizione inversa, che ripristini lo stato originale. Esempio: una regola mostra il campo, una seconda regola lo nasconde nuovamente.
Se più regole agiscono sullo stesso campo (ad es. la regola 1 imposta il valore su X, la regola 2 imposta il valore su Y), è la priorità a decidere:
> 💡 Best practice: assegna le priorità in modo consapevole a intervalli di 10 (10, 20, 30, …), in modo da poter inserire altre regole in mezzo in un secondo momento.
Vermarktungsart = MieteKaufpreis → Modifica etichetta in KaltmieteKaufpreis → Aggiungi suffisso (€/Monat)Provisionsfrei = JaProvision Außen, Provisions-Prozent, MwSt. → NascondiVertragsart = KaufvertragKäufer-Vorname + Käufer-Nachname → Campo obbligatorioKaufpreis non è vuoto E Provisions-Prozent non è vuotoSumme Innenprovision → Calcola valore → {{multiply:field:KAUFPREIS_ID|field:PROZENT_ID|/100}}Bundesland = BayernRegion → Nascondi opzioni → tutte tranne le regioni bavaresi_calculate(IF(...)) per gli URL delle pagine di ringraziamento