Dynamische formulieren

Het kan voorkomen dat de keuze voor in te voeren velden afhankelijk is van een attribuut-waarde in een ander veld. In dat geval is het voor de gebruiker handig als alleen de invoer velden worden getoond die ook relevant zijn. Dat voorkomt foutieve invoer.

In het jsonSchema kan daarvoor het element ‘dependencies' worden opgenomen. Daarbinnen kunnen formulier elementen worden opgenomen die afhankelijk zijn van de waarde in een ander formulier element. Binnen de sectie ‘dependencies’ worden (in geneste vorm) de volgende zaken vastgelegd:

  1. Voor welk formulierelement geldt deze afhankelijkheid

  2. Voor welke veldwaarden geldt deze afhankelijkheid

  3. Beschrijving van het formulier element dat getoond moet worden

 

{ "jsonSchema": { "type": "object", "title": "Leeg formulier", "description": "Formulier zonder invoervelden", "properties": { "heefthond": { "enum": [ "Ja", "Nee" ], "type": "string", "description": "Heeft u een hond?" } }, "dependencies": { "heefthond": { "oneOf": [ { "properties": { "heefthond": { "enum": [ "Ja" ] }, "hond": { "enum": [ "Herder", "Poedel", "Labrador", "Weet ik niet" ], "title": "soort", "type": "string", "description": "Wat voor hond?" } }, "required": [] } ] } }, "required": [ "heefthond" ] } , "uiSchema": { "ui:order": [ "heefthond", "hond" ] } }

In Onemap wordt nu op het formulier in eerste instantie alleen gevraagd of u een hond heeft:

Pas als hierop met 'Ja' wordt geantwoord verschijnt een keuzelijst met meerdere invoer keuzes.