# Veldinstellingen

Labels, plaatshouders, standaardwaarden, validatieregels en veldspecifieke opties.

## Veldinstellingen

Elk veld heeft gedeelde instellingen — titel, verplicht, plaatshouder — plus type-specifieke opties zoals tekenlimiet, bestandsbeperkingen en validatieregels. Op deze pagina vind je ze allemaal.

<h2 id="accessing-settings">Veldinstellingen openen</h2>
<p>
  Typ de titel en opties van een vraag rechtstreeks op het canvas. Al het andere leeft in het blokmenu: klik op de sleepgreep aan de
  linkerkant van het blok (of tik op de blokindicator op een touchscreen) en kies uit <strong>Omzetten naar</strong>,{' '}
  <strong>Opties</strong>, <strong>Validatie</strong>, en de gebruikelijke acties dupliceren / verplaatsen / verbergen / verwijderen.
</p>

<h2 id="common-settings">Algemene instellingen</h2>
<p>Deze opties zijn beschikbaar op elk vraagveld, ongeacht het type.</p>

<p>
  De sleutel van een veld — de naam waaronder automatiseringen het vooraf invullen en uitlezen — stel je in via de tabel{' '}
  <strong>Sleutels</strong>, die het sleutelicoon in de werkbalk voor het hele formulier opent: één sleutel per veld, optie, rij en kolom.
  Laat een sleutel leeg om de naam afgeleid van de titel of het label te gebruiken. Een sleutel wijzigen op een gepubliceerd formulier
  waarschuwt je dat automatiseringen die de oude sleutel gebruiken, kapot gaan. De hintregel van elke optie draagt zijn sleutel ook als een
  chip die je direct kunt bewerken. Zie <a href="/nl/requests/field-keys">Veldsleutels</a> voor hoe sleutels worden afgeleid, vastgezet bij
  publicatie, en gebruikt door aanroepers.
</p>

> 💡 **Helptekst toevoegen**
> <p>
>     Formstep is een document-stijl editor — om helptekst of instructies bij een vraag toe te voegen, voeg je een paragraaf- of kopblok in
>     boven of onder het veld op het canvas. Inhoudsblokken tussen vragen zijn zichtbaar voor respondenten en werken net als elk ander blok.
>   </p>

> ℹ️ **Zichtbaarheid van de titel en gegevens**
> <p>
>     Een verborgen titel verwijdert het veld niet uit inzendingen. Het verschijnt nog steeds als kolomkop in exports — geef velden met een
>     verborgen titel dus een duidelijke interne naam.
>   </p>

<h2 id="text-options">Tekstopties</h2>
<p>
  <strong>Min length</strong> en <strong>Max length</strong> leven onder <strong>Validatie</strong> in het blokmenu en gelden voor{' '}
  <strong>Text Input</strong>, <strong>Text Area</strong> en <strong>Website URL</strong>. Text Area is de meerregelige variant van Text
  Input — schakel tussen beide met <strong>Omzetten naar</strong>.
</p>

<h2 id="number-options">Numerieke opties</h2>
<p>
  <strong>Minimum</strong> en <strong>Maximum</strong> leven onder <strong>Validatie</strong> en gelden voor <strong>Number</strong>,{' '}
  <strong>Star Rating</strong> en een lineaire schaal. <strong>Number</strong> heeft ook <strong>Stap</strong>: het antwoord moet een
  veelvoud daarvan zijn, dus een stap van 1 accepteert alleen hele getallen en 0,5 accepteert halve. Laat het leeg om elk getal te
  accepteren.
</p>

<h2 id="choice-options">Keuzeopties</h2>
<p>
  Deze instellingen gelden voor keuzevelden: <strong>Radio Buttons</strong>, <strong>Checkboxes</strong>, <strong>Dropdown</strong>,{' '}
  <strong>Ranking</strong>, <strong>Single Picture Choice</strong> en <strong>Multi Picture Choice</strong>.
</p>

<p>
  Losse opties kunnen ook vanaf het canvas worden verborgen of vooraf geselecteerd: met de cursor in een optie druk je op ⌘ + H (Ctrl + H)
  om hem te verbergen, of op ⌘ + D (Ctrl + D) om hem standaard te selecteren.
</p>

<h2 id="rating-scale-options">Beoordelings- en schaalopties</h2>

<h3 id="rating">Rating</h3>
<p>
  Het <strong>Star Rating</strong>-veld toont standaard 5 sterren. Gebruik <strong>Max sterren verhogen</strong> en{' '}
  <strong>Max sterren verlagen</strong> in het blokmenu om een waarde tussen 1 en 10 in te stellen. Zet het via hetzelfde menu om in een
  lineaire schaal; het maximum blijft behouden en de menu-items worden <strong>Schaalmaximum verhogen / verlagen</strong>.
</p>

<h3 id="matrix">Matrix</h3>
<p>
  Het <strong>Matrix / Grid</strong>-veld maakt een raster van keuzes. Definieer <strong>Rijen</strong> (de subvragen) en{' '}
  <strong>Kolommen</strong> (de antwoorden). De respondent kiest één kolom per rij. Onder <strong>Validatie</strong> kun je{' '}
  <strong>Alle rijen verplicht</strong> instellen of een <strong>Min beantwoorde rijen</strong> opgeven.
</p>

<h2 id="file-payment-options">Bestandsupload en betaalopties</h2>

<h3 id="file-upload">Bestandsupload</h3>
<p>
  <strong>File Upload</strong> heeft <strong>Min files</strong>, <strong>Max files</strong>, <strong>Max size (MB)</strong> en{' '}
  <strong>Accepted types</strong> onder <strong>Validatie</strong>. Zie{' '}
  <a href="/nl/building-forms/file-uploads-signatures">Bestandsuploads &amp; handtekeningen</a> voor de details.
</p>

<h3 id="payment">Betaling</h3>
<p>
  Het <strong>Payment</strong>-veld int een eenmalige betaling. Stel het <strong>Bedrag</strong> en de <strong>Valuta</strong> in op het
  blok — USD, EUR, GBP, JPY, CAD, AUD, CHF, SEK, NOK, DKK, NZD, SGD, HKD, AED of TRY. Elke valuta heeft een minimumbedrag (0,50 voor USD en
  EUR), en publiceren is geblokkeerd totdat Stripe is gekoppeld en het bedrag geldig is. Zie{' '}
  <a href="/nl/building-forms/payment-collection">Betalingen verzamelen</a>.
</p>

<h2 id="default-values">Standaardwaarden van andere velden</h2>
<p>
  De standaardwaarde van een veld kan afkomstig zijn van een ander veld in hetzelfde formulier in plaats van vaste tekst — een verborgen
  veld (bijvoorbeeld een URL-parameter) of een berekend veld. Het werkt op de zes invoervelden met een standaardwaarde-slot:{' '}
  <strong>Text Input</strong>, <strong>Text Area</strong>, <strong>Email</strong>, <strong>Website URL</strong>,{' '}
  <strong>Phone Number</strong> en <strong>Number</strong>.
</p>
<p>Zo stel je het in:</p>
<ol>
  <li>Klik in het invoerveld van het veld.</li>
  <li>
    Typ <kbd>@</kbd> als eerste teken. Een menu toont je verborgen en berekende velden; blijf typen om te filteren.
  </li>
  <li>
    Kies een veld. Het invoerveld schakelt vanzelf om naar de <strong>standaardwaarde</strong>-modus en toont het veld als een chip,
    bijvoorbeeld <strong>@recipient</strong>.
  </li>
</ol>
<p>
  Om de verwijzing te verwijderen, klik je op de <strong>×</strong> op de chip, druk je op <kbd>Backspace</kbd>, of druk je opnieuw op{' '}
  <kbd>⌘</kbd> + <kbd>D</kbd>. Wil je in plaats daarvan een letterlijke <kbd>@</kbd> — bijvoorbeeld als plaatshouder zoals{' '}
  <code>@yourhandle</code> — druk dan op <kbd>Esc</kbd> om het menu te sluiten en blijf typen; het invoerveld blijft in de modus waarin het
  al stond. Een chip wordt rood wanneer het bijbehorende veld is verwijderd; een veld met dezelfde naam opnieuw toevoegen herstelt de
  verbinding.
</p>
<p>
  De chip vervangt de plaatshoudertekst van het veld. <kbd>@</kbd> opent het menu alleen als eerste teken, dus een standaardwaarde zoals{' '}
  <code>jeff@example.com</code> blijft gewone tekst.
</p>
<p>
  Wanneer iemand het formulier opent, wordt het veld vooringevuld met de gerefereerde waarde — bijvoorbeeld, een link die eindigt op{' '}
  <code>?recipient=Jeff</code> vult een Text Input-veld dat verwijst naar het verborgen veld <code>recipient</code> met "Jeff". Zo gedraagt
  het zich:
</p>
<ul>
  <li>Respondenten kunnen de waarde wijzigen of wissen. Hun eigen antwoord wordt nooit overschreven.</li>
  <li>
    Een berekend veld vult het invoerveld met de eerste waarde die het heeft — meestal de beginwaarde. Latere wijzigingen door logische
    regels vervangen niet wat al in het invoerveld staat.
  </li>
  <li>
    Als het gerefereerde veld geen waarde heeft, begint het invoerveld leeg. Een Number-veld blijft ook leeg wanneer de waarde geen getal is
    (bijvoorbeeld <code>?age=abc</code>).
  </li>
  <li>De inzending slaat beide waarden op: het verborgen of berekende veld, en het uiteindelijke antwoord op de vraag.</li>
</ul>
<p>
  Zie <a href="/nl/building-forms/hidden-fields">Verborgen velden</a> en <a href="/nl/building-forms/calculated-fields">Berekende velden</a>{' '}
  voor meer informatie.
</p>

<h2 id="examples">Voorbeelden</h2>

<ul>
  <li>
    <strong>Contactformulier</strong> — Email-veld gemarkeerd als verplicht, Text Area voor het bericht met plaatshouder "Vertel ons hoe we
    kunnen helpen…", Phone Number-veld gemarkeerd als optioneel met een paragraaf eronder: "We bellen alleen als we je verzoek moeten
    verduidelijken"
  </li>
  <li>
    <strong>NPS-enquête</strong> — Star Rating ingesteld op 10 sterren, gevolgd door een Text Area (standaard verborgen, zichtbaar via
    logica wanneer de score 6 of lager is) met plaatshouder "Wat kunnen we verbeteren?"
  </li>
  <li>
    <strong>Productbestelling</strong> — Number-veld voor hoeveelheid met min 1 / max 100, Checkboxes voor extra’s en een betaalveld waarvan
    het bedrag wordt bepaald door een berekend veld
  </li>
  <li>
    <strong>Evenement RSVP</strong> — Radio Buttons voor aanwezigheid, Checkboxes voor dieetwensen met willekeurige volgorde om vertekening
    te vermijden, Date Picker met een vroegste datum ingesteld
  </li>
</ul>
<h2 id="validation-rules">Validatieregels</h2>

<p>
  Validatie wordt uitgevoerd terwijl de respondent je formulier invult. Formstep markeert ongeldige invoer direct inline en weigert
  indiening totdat alles klopt.
</p>

<h3 id="built-in-validation">Ingebouwd per veldtype</h3>

<p>
  Elk vraagtype controleert zijn eigen vorm, zonder dat je iets hoeft in te stellen. <strong>Email</strong> controleert het e-mailformaat.{' '}
  <strong>Website URL</strong> accepteert alleen http- en https-links en weigert een host die geen echt domein is.{' '}
  <strong>Phone Number</strong> controleert het nummer aan de hand van het geselecteerde land. <strong>Number</strong>,{' '}
  <strong>Date Picker</strong> en <strong>Time Picker</strong> weigeren alles wat geen getal, datum of tijd is.
</p>

<p>
  Bij Business kunnen e-mailvragen aanvullend verificatie vereisen — de respondent bevestigt dat adres met een eenmalige code voordat het
  formulier de inzending accepteert. De schakelaar staat onder <strong>Validatie → Verificatie</strong>. Zie{' '}
  <a href="/nl/building-forms/email-verification">e-mailverificatie van respondenten</a>.
</p>

<h3 id="optional-rules">Optionele regels per veld</h3>

<p>
  Open het blokmenu en kies <strong>Validatie</strong>. De beschikbare regels hangen af van het vraagtype; dit zijn de exacte menu-labels.
</p>

<p>
  Radio Buttons, Dropdown, Toggle Switch, Signature, Ranking, Payment en Schedule appointment hebben geen validatieregels — verplicht of
  niet is de enige keuze. Binnen een herhalende groep wordt e-mailverificatie niet aangeboden.
</p>

<h3 id="custom-patterns">Voorbeelden van aangepaste patronen</h3>

<ul>
  <li>
    <strong>Amerikaanse postcode</strong> — <code>{`^\\d{5}(-\\d{4})?$`}</code>
  </li>
  <li>
    <strong>Hex-kleurcode</strong> — <code>{`^#[0-9a-fA-F]{6}$`}</code>
  </li>
  <li>
    <strong>URL-vriendelijke slug</strong> — <code>{`^[a-z0-9-]+$`}</code>
  </li>
</ul>

<p>
  Een waarde die niet overeenkomt toont een generieke foutmelding "Ongeldige waarde", dus voeg een paragraaf bij het veld toe die het
  formaat beschrijft dat je verwacht. Een ongeldige regex wordt genegeerd en blokkeert indiening nooit. Lengteregels tellen tekens nadat
  voorloop- en volgspaties zijn verwijderd.
</p>

<h3 id="how-validation-runs">Hoe validatie werkt</h3>

<p>
  Formstep controleert validatie live in de browser terwijl de respondent typt. Formaat- en regelfouten verschijnen direct met een inline
  melding; een foutmelding "Dit veld is verplicht" verschijnt zodra het veld is aangeraakt, of wanneer de respondent probeert in te dienen.
</p>

> ⚠️ **Valideer gevoelige gegevens niet alleen met regex**
> <p>
>     Voor zaken zoals creditcards of overheidsidentificaties gebruik je het juiste veldtype of de juiste integratie. Regex controleert de
>     vorm, niet de geldigheid.
>   </p>

<h2 id="next-steps">Volgende stappen</h2>
<div class="not-prose grid gap-3 sm:grid-cols-2">
  - [Antwoord doorvoeren](/nl/building-forms/answer-piping) — Gebruik @-vermeldingen om antwoorden overal in je formulier te verwijzen.
  - [Conditionele logica](/nl/building-forms/conditional-logic) — Toon of verberg velden op basis van antwoorden
  - [Verborgen velden](/nl/building-forms/hidden-fields) — Leg URL-parameters onzichtbaar vast
  - [Berekende velden](/nl/building-forms/calculated-fields) — Bereken scores, totalen en dynamische waarden
</div>
