Modificare i campi di un Nested Form
Attraverso la sezione Logic è possibile modificare dinamicamente alcune proprietà dei componenti presenti all'interno di un nested form.
In questo modo, il nested form non viene modificato in modo permanente nella sua definizione originale, ma assume una struttura differente solo all'interno del servizio in cui le logiche sono state configurate.
La modifica delle proprietà di un Nested Form tramite condizioni logiche è una funzionalità potente ma delicata: se utilizzata in modo improprio, può compromettere il servizio, interrompendo il flusso di compilazione e pregiudicando l'esperienza utente.
Cosa puoi modificare
Di seguito trovi le proprietà che puoi modificare, con un esempio di codice per ciascuna. Il codice completo va inserito nel campo "Custom Action (Javascript)", come spiegato in Come configurare la modifica.
Come configurare la modifica
Una volta scelto cosa modificare, segui questi passaggi per applicarlo nel service builder.
Configura la logica
Collocati nella sezione "Logic" del componente e aggiungi una logica avanzata

Inserisci il nome della logica creata (1) e come trigger seleziona la tipologia "Javascript" (2).

Se la modifica deve essere sempre eseguita, digita result = true nel campo "Text Area".

Se la modifica dipende dal valore di un campo variabile (ad esempio, una select ruolo in cui i valori sono "Genitore", "Tutore" e "Affidatario"), è necessario definire esplicitamente tutte le condizioni in altrettante logiche. Infatti, il form non ripristina automaticamente lo stato precedente se viene configurata solo una delle due condizioni.


Una volta creata la logica, clicca su "Add Action" per aggiungere l'azione da eseguire

Configura l'azione inserendo il titolo (1) e indicando la tipologia "Custom Action" (2).

La tipologia "Custom Action" attiva la sezione "Custom action (Javascript)", da usare per inserire il codice della tua azione.

Durante la modifica della proprietà , ricorda di racchiudere il tuo codice inserendo:
window.FormioHelper.editFormProperties(instance, {all'inizio.})alla fine (per chiudere la funzione).
In pratica, la struttura del tuo codice dovrà assomigliare a questa:
Recuperare il property name dei componenti del nested form
Il property name dei campi varia a seconda dello specifico "Nested Form" utilizzato.
Per conoscere il property name corretto, consulta la pagina I nested form: nell'expandable di ogni nested form trovi l'elenco completo dei path dei campi.


Modificare un componente di un Nested Form annidato
Per modificare i campi presenti in Nested Form che a loro volta contengono altri Nested Form, è necessario indicare il percorso completo del campo, racchiudendolo tra virgolette.
Per esempio, voglio rendere non obbligatorio il campo "Indirizzo" contenuto nel nested form OC - Residenza, a sua volta contento nel nested form OC - Immobili.
La sintassi sarà "address.street_address" , dove:
address= property name del nested form OC - Residenza all’interno di OC - Immobilistreet_address= property name del campo "Indirizzo" all’interno di OC - Residenza

Ultimo aggiornamento
È stato utile?