# Betinget logikk

Vis, skjul, krev og forgren basert på svar.

## Betinget logikk

Logikkblokker reagerer på det en respondent skriver inn — vis eller skjul en hvilken som helst blokk, hopp til sider, blokker innsending, eller beregn verdier. Lag enkle regler som bygger opp sofistikert forgrening uten kode.

<h2 id="what-logic-can-do">Hva logikk kan gjøre</h2>

<p>
  Hver logikkblokk har én eller flere <strong>regler</strong>. Hver regel kobler en <em>betingelsesgruppe</em> (når skal dette utløses?) med
  én eller flere <em>handlinger</em> (hva skal skje?). Ni handlingstyper er tilgjengelige:
</p>

<h2 id="adding-a-logic-block">Legge til en logikkblokk</h2>

<p>
  En logikkblokk er et dokumentelement — den sitter på lerretet mellom spørsmål, akkurat som en overskrift eller et bilde. Du kan plassere
  den hvor som helst: mellom to felt på samme side, øverst på en side, eller rett før et sideskift.
</p>

<h2 id="conditions">Betingelser</h2>

<p>
  Betingelser er <strong>Når</strong>-siden av en regel. Hver betingelse velger et <strong>felt</strong>, bruker en{' '}
  <strong>operator</strong>, og sammenligner ofte med en <strong>verdi</strong>. Feltvelgeren grupperer det du kan overvåke:{' '}
  <strong>Spørsmål</strong>, <strong>Skjulte felter</strong>, <strong>Beregnede felter</strong> og <strong>Metadata</strong> (i dag,
  respondentens språk).
</p>

<h3 id="all-or-any">Alle eller Noen</h3>

<p>Når en regel har to eller flere betingelser, vises en veksling øverst i Når-seksjonen:</p>

<ul>
  <li>
    <strong>Alle</strong> — alle betingelser må være sanne for at regelen skal utløses. Radene leses som "og".
  </li>
  <li>
    <strong>Noen</strong> — én sann betingelse er nok. Radene leses som "eller".
  </li>
</ul>

<h3 id="sets-of-conditions">Sett med betingelser</h3>

<p>
  <strong>Legg til et sett med betingelser</strong> nøster en ny gruppe inne i den første, ett nivå dypt, med sin egen Alle/Noen-veksling.
  Det dekker sammensatt logikk som "plan <strong>er</strong> Pro <em>og</em> (land <strong>er</strong> Norge <em>eller</em> land{' '}
  <strong>er</strong> Sverige)". Et sett inneholder kun betingelser — det kan ikke inneholde et annet sett.
</p>

> ⚠️ **Et skjult spørsmål har ingen verdi**
> <p>
>     Hvis logikk skjuler et spørsmål, teller svaret det eventuelt allerede har, for ingenting — ikke i betingelser, ikke i beregninger, ikke
>     i betalingsbeløpet, og ikke i den lagrede innsendingen. Svaret kommer bare tilbake hvis spørsmålet blir synlig igjen. Det samme gjelder
>     hvert spørsmål i en skjult rad, kolonne eller gjentakende gruppe, og et valgt alternativ som logikken skjuler. En side som Angi neste
>     side-reglene hopper over, regnes også som skjult: spørsmålene der er ikke påkrevd, og det som ble besvart der, forkastes. Skjulte{' '}
>     <em>felt</em> er det motsatte: de har alltid verdien sin.
>   </p>

> 💡 **Hold det lesbart**
> <p>
>     Hvis en enkelt logikkblokk føles for kompleks, kan du vurdere å dele logikken over flere logikkblokker eller omstrukturere skjemasidene
>     dine.
>   </p>

<h2 id="operators-reference">Operatorreferanse</h2>

<p>
  Operatorlisten avgjøres av feltet du har valgt — du ser bare de operatorene det feltet støtter. Under navngir hver overskrift det eksakte
  settet.
</p>

<h3 id="text-text-input-text-area-and-text-calculated-fields">Tekst (Text Input, Text Area og tekstberegnede felt)</h3>

<p>
  Alle tekstsammenligninger ser bort fra store og små bokstaver og mellomrom i starten og slutten, så <code>x@Competitor.com</code> slutter
  med <code>@competitor.com</code>.
</p>

<p>De andre tekstlignende inndatafeltene har et snevrere sett, så velg typen som passer med hvordan du trenger å sammenligne:</p>

<h3 id="numeric-number-star-rating-linear-scale-numeric-hidden-and-calculated-fields">
  Numerisk (Number, Star Rating, linear scale, numeriske skjulte og beregnede felt)
</h3>

<h3 id="checkboxes-and-picture-choice">Checkboxes og picture choice</h3>

<h3 id="dropdown-and-radio-buttons-single-select">Dropdown og Radio Buttons (enkeltvalg)</h3>

<h3 id="toggle-switch-and-boolean-calculated-fields">Toggle Switch (og boolske beregnede felt)</h3>

<h3 id="signature">Signature</h3>

<h3 id="file-upload">File Upload</h3>

<h3 id="date-picker-and-time-picker">Date Picker og Time Picker</h3>

<h3 id="ranking">Ranking</h3>

<h3 id="matrix--grid">Matrix / Grid</h3>

<h3 id="payment">Payment</h3>

<h3 id="fields-you-cannot-watch">Felt du ikke kan overvåke</h3>

<p>
  <strong>Schedule appointment</strong> og <strong>Dokumenter</strong> kan være mål for synlighet, men aldri kilder til betingelser. En
  booking er knyttet til innsendingen i stedet for lagret som et vanlig svar, og en dokumentblokk samler ikke inn noe svar i det hele tatt.
  Bruk tidligere kvalifiseringssvar til å vise eller skjule begge deler. Hvert synlige Schedule appointment-spørsmål må bookes før
  innsending; et skjult spørsmål blokkerer ikke innsendingen. Se{' '}
  <a href="/no/integrations/cal-com#logic">Cal.com-timebestilling med logikk</a>.
</p>

<h2 id="targeting">Målretting</h2>

<p>
  Hver handling trenger et <strong>mål</strong> — det den virker på. Målet avhenger av handlingstypen:
</p>

<p>
  Vis og Skjul rekker lenger enn spørsmål. Målrett en hvilken som helst blokk på lerretet — et avsnitt, en overskrift, et bilde eller en
  layoutbeholder — for å avsløre en merknad som var skjult som standard, eller skjule innhold når det ikke lenger er relevant. De kan også
  målrette individuelle alternativer inne i et valgfelt, ikke bare hele spørsmålet. Skjul en blokk fra blokkmenyen først, og skriv deretter
  en regel for å avsløre den.
</p>

<h2 id="how-rules-combine">Hvordan flere regler kombineres</h2>

<p>
  Hver regel er uavhengig, og alle evalueres samtidig. Regler leses ovenfra og ned, på tvers av logikkblokker, i dokumentrekkefølge. Hvordan
  flere regler på ett mål kombineres, avhenger av handlingen.
</p>

<p>
  Så du kan peke flere regler på én blokk uten at de kommer i konflikt. Et tilbakemeldingsskjema har et Radio Buttons-spørsmål — "Hva kan vi
  hjelpe deg med?" — med fire alternativer, og et e-postfelt "Kan vi kontakte deg?" som er skjult som standard. Fire regler{' '}
  <strong>Vis</strong>-er det samme e-postfeltet (pluss hvert sitt oppfølgingsspørsmål) for sitt alternativ. E-postfeltet vises uansett
  hvilket alternativ som velges, og forblir skjult bare hvis ingen er valgt.
</p>

> 💡 **Én regel er ofte nok**
> <p>
>     For å vise en blokk for flere svar er én regel med <strong>Noen</strong> og én betingelse per svar — eller en enkelt{' '}
>     <strong>is not empty</strong>-betingelse som dekker alle — enklere å lese enn fire regler. Bruk flere regler når hvert alternativ også
>     trenger sitt eget distinkte oppfølgingsspørsmål.
>   </p>

<h3 id="conflicting-rules">Motstridende regler</h3>

<p>
  Når to regler er uenige om det samme målet — én <strong>Vis</strong>-er en blokk mens en annen <strong>Skjul</strong>-er den, eller én
  gjør et felt påkrevd mens en annen gjør det valgfritt — og begge betingelsene samsvarer samtidig,{' '}
  <strong>vinner den første regelen</strong>. Den tapende regelen flagges i redigeringsprogrammet: "Denne handlingen gjelder aldri — en
  tidligere regel styrer allerede målet. Rekkefølgen på reglene avgjør: den første regelen vinner."
</p>

<p>
  Ett unntak fra rekkefølgen: en regel hvis betingelse leser et beregnet felt, kjører etter regelen som skriver til det, uansett
  dokumentrekkefølge, slik at en poengsum alltid beregnes før noe forgrener seg på den. Regler som skriver til hverandres beregnede felt i
  en løkke, utløser en publiseringsadvarsel som navngir kjeden — bryt løkken slik at verdiene løses opp på en forutsigbar måte.
</p>

<h3 id="hidden-and-required">Skjult vinner over påkrevd</h3>

<p>
  Et spørsmål som ender opp skjult, er aldri påkrevd, enten det ble skjult av en regel eller skjult fra blokkmenyen uten noen regel som
  avslører det igjen. Stjernen forsvinner, og innsending blokkeres ikke — ellers kunne en respondent bli stengt ute fra et skjema av et felt
  de ikke kan se.
</p>

<h2 id="common-patterns">Vanlige mønstre</h2>

<h3 id="show-a-follow-up-question-based-on-a-previous-answer">Vis et oppfølgingsspørsmål basert på et tidligere svar</h3>

<p>
  En tilfredshetsundersøkelse spør "Hvordan vil du vurdere opplevelsen din?" med en 1-5 Star Rating. En logikkblokk under den bruker
  betingelsen "rating is less than or equal to 3" med handlingen <strong>Vis</strong> som målretter et Text Area-felt som spør "Hva kan vi
  forbedre?" Respondenter som gir 4 eller 5 ser aldri oppfølgingsspørsmålet.
</p>

<h3 id="reveal-a-message-when-an-option-is-picked">Avslør en melding når et alternativ velges</h3>

<p>
  Et påmeldingsskjema har et Radio Buttons-spørsmål: "Hvilken plan passer deg best?" Under det sitter et avsnitt — "Godt valg! Pro-planen
  vår inkluderer prioritert støtte." — skjult som standard med blokkmenyens <strong>Skjul</strong>. En logikkblokk avslører det: hvis plan{' '}
  <strong>er</strong> "Pro", <strong>Vis</strong> avsnittet. Den oppmuntrende merknaden vises bare for dem som velger Pro, og forblir skjult
  for alle andre.
</p>

<h3 id="branch-to-different-pages-based-on-a-selection">Forgren til ulike sider basert på et valg</h3>

<p>Et arrangement-registreringsskjema har et Radio Buttons-spørsmål: "Deltar du fysisk eller eksternt?" To logikkblokker følger:</p>

<ul>
  <li>
    <strong>Regel 1</strong> — betingelse: oppmøte <strong>er</strong> "Fysisk", handling: <strong>Angi neste side</strong>{' '}
    "Lokalitetsinformasjon".
  </li>
  <li>
    <strong>Regel 2</strong> — betingelse: oppmøte <strong>er</strong> "Eksternt", handling: <strong>Angi neste side</strong>{' '}
    "Strømmeoppsett".
  </li>
  <li>
    <strong>Regel 3</strong> — betingelse: ankomsttid <strong>is not empty</strong>, handling: <strong>Angi neste side</strong>{' '}
    "Bekreftelse". Ankomsttid er et påkrevd spørsmål på "Lokalitetsinformasjon".
  </li>
</ul>

<p>
  Regel 1 og 2 leser oppmøte-spørsmålet, så de virker når respondenten forlater siden med det spørsmålet. Etter det går Neste videre i
  siderekkefølge. Regel 3 leser et spørsmål på "Lokalitetsinformasjon", så den virker når respondenten forlater den siden. De som deltar
  fysisk, hopper da over "Strømmeoppsett". Hver vei samler bare relevant informasjon, og begge konvergerer på en felles "Bekreftelse"-side.
</p>

<h3 id="calculate-a-score-and-branch-on-it">Beregn en poengsum og forgren basert på den</h3>

<p>
  Et lead-kvalifiseringsskjema har tre Star Rating-spørsmål: budsjett, tidslinje og myndighet. Et beregnet felt kalt "Lead score" bruker en
  logikkblokk med handlingen <strong>Beregn verdi</strong> for å legge sammen verdien av hver vurdering. En andre logikkblokk leser det
  beregnede feltet: hvis Lead score <strong>is greater than 12</strong>, <strong>Angi neste side</strong> "Prioritert oppfølging"; ellers
  hopp til standard bekreftelsessiden.
</p>

<h3 id="react-to-a-hidden-field-value">Reager på en skjult feltverdi</h3>

<p>
  URL-en fyller ut et skjult felt kalt <strong>plan</strong> (f.eks. <code>?plan=enterprise</code>). En logikkblokk sjekker: hvis plan{' '}
  <strong>er</strong> "enterprise", <strong>Vis</strong> spørsmålet "Dedikert kontoadministrator" og <strong>Gjør påkrevd</strong>
  feltet "Selskapsstørrelse". Respondenter på gratisplanen ser aldri disse spørsmålene.
</p>

<h3 id="gate-submission-on-a-calculated-total">Sperre innsending basert på en beregnet total</h3>

<p>
  Et bestillingsskjema beregner en løpende total. En logikkblokk bruker betingelsen: hvis Order total <strong>is less than 10</strong>,
  <strong>Hindre innsending av skjema</strong>. Respondenten kan ikke sende inn før minimumsordreterskelen er nådd.
</p>

<p>
  Mens en hindre-regel er aktiv, vises knappen som utilgjengelig, og respondenten får vite hvorfor. Skriv årsaken inn i{' '}
  <strong>Melding vist til respondenten</strong> på handlingsraden — "Bestillingen din må totalt være minst 10" — slik at de vet hvilket
  svar de skal endre. Lar du det stå tomt, faller skjemaet tilbake på "Dette skjemaet kan ikke sendes inn med de nåværende svarene." (eller
  "Du kan ikke fortsette til neste side med de nåværende svarene." for en navigasjonsblokk). Når flere hindre-regler utløses samtidig, er
  det den første som har en melding, som bestemmer teksten.
</p>

> 💡 **Test logikk med Forhåndsvisning**
> <p>
>     Etter at du har satt opp reglene dine, bytter du til <strong>Forhåndsvisning</strong> i øverste verktøylinje og fyller ut skjemaet slik
>     en respondent ville gjøre det. Logikk utløses i sanntid i Forhåndsvisning, slik at du kan bekrefte hver forgrening, skjult felt og
>     valideringsport før publisering.
>   </p>

<h2 id="next-steps">Neste steg</h2>
<div class="not-prose grid gap-3 sm:grid-cols-2">
  - [Skjulte felt](/no/building-forms/hidden-fields) — Fang URL-parametere og bruk dem i logikk
  - [Beregnede felter](/no/building-forms/calculated-fields) — Beregn poengsummer og totaler med logikkoperasjoner
  - [Svar-piping](/no/building-forms/answer-piping) — Referér til et hvilket som helst svar andre steder i skjemaet
</div>
