Radiobuttons

Om komponenten

BĂ„de checkboxer og radiobuttons bruker samme klasse, pkt-input-check.

Strukturelt skal <input> og <label> vÊre sÞskenelementer istedet for Ä ha <label> rundt <input>. Dette krever mer markup siden du mÄ legge til id og for attributter. Dette er gjort for at det er dette som gir mest konsistent resultat for hjelpemidler som skjermlesere og liknende.

For Ä lage grupper med radiobuttons brukes vÄr inputwrapper som sikrer riktig layout og styling. Ved grupper av radiobuttons brukes role="radiogroup", og hasFieldset som wrapper gruppen med fieldset og legend.

Hvordan ta i bruk?

Bruker dere React, sÄ er det bare Ä fortsette med Ä importere komponenten og bruke den. Bruker dere Vue, sÄ Þnsker vi at dere gÄr over til Ä bruke vÄre pkt-elements. Dette kan dere gjÞre enten ved Ä bruke pkt-elements fra CDN, eller ved Ä installere pkt-elements lokalt og bruke det lokalt.

// React
import { PktRadioButton } from "@oslokommune/punkt-react";

// Custom Element:
import "@oslokommune/punkt-elements/dist/pkt-radiobutton.js";

// Custom Element fra CDN:
<script src="https://punkt-cdn.oslo.kommune.no/latest/elements/pkt-radiobutton.js"></script>;

Varianter

  <pkt-input-wrapper
    forId="radioGroup1"
    label="Etikett"
    helptext="Dette er tekst over avmerkingsboksene."
    helptextDropdown="Dette er tekst over avmerkingsboksene i en dropdown"
    helptextDropdownButton="Les mer om frukt"
    optionalTag
    optionalText="Valgfritt"
    hasFieldset
    role="radiogroup"
  >
   <pkt-radiobutton
      name="frukt"
      value="Eple"
      id="eple"
      label="Eple"
      checkHelptext="Dette er tekst over avmerkingsboksene."
    >
  </pkt-radiobutton>
   <pkt-radiobutton
      name="frukt"
      value="Banan"
      id="banan"
      label="Banan"
      checkHelptext="Dette er tekst over avmerkingsboksene."
    >
  </pkt-input-wrapper>
<fieldset class="pkt-inputwrapper pkt-inputwrapper__fieldset" role="radiogroup">
  <legend class="pkt-inputwrapper__label pkt-inputwrapper__legend">
    Etikett
  </legend>
  <div class="pkt-inputwrapper__helptext">
    Dette er tekst over avmerkingsboksene.
  </div>
  <div class="pkt-input-check">
    <div class="pkt-input-check__input">
      <input
        class="pkt-input-check__input-checkbox"
        type="radio"
        id="radio1"
        name="radiogroup"
      />
      <label class="pkt-input-check__input-label" for="radio1">Radio1</label>
    </div>
    <div class="pkt-input-check__input">
      <input class="pkt-input-check__input-checkbox" type="radio" id="radio2" />
      <label class="pkt-input-check__input-label" for="radio2">Radio2</label>
    </div>
  </div>
</fieldset>
<PktInputWrapper
  label="Etikett"
  helptext="Dette er tekst over avmerkingsboksene."
  optionalTag
  optionalText="Valgfritt"
  forId="radioGroup"
  hasFieldset
  role="radiogroup"
  client:load
>
  <PktRadioButton id="radio1" label="Radio1" name="radiogroup" client:load />
  <PktRadioButton id="radio2" label="Radio2" name="radiogroup" client:load />
</PktInputWrapper>
<PktInputWrapper
  label="Etikett"
  helptext="Dette er tekst over avmerkingsboksene."
  optionalTag
  optionalText="Valgfritt"
  forId="radioGroup"
  role="radiogroup"
  hasFieldset
>
  <PktRadioButton id="radio1" label="Radio1" name="radiogroup" />
  <PktRadioButton id="radio2" label="Radio2" name="radiogroup" />
</PktInputWrapper>

Error

Legg til pkt-input-check__input-checkbox--error pÄ inputfeltet i CSS, eller hasError som prop i React/Vue.

<div class="pkt-input-check">
  <div class="pkt-input-check__input">
    <input
      class="pkt-input-check__input-checkbox pkt-input-check__input-checkbox--error"
      type="radio"
      id="radio1error"
    />
    <label class="pkt-input-check__input-label" for="radio1error">
      Radio Error
    </label>
  </div>
</div>
<PktInputWrapper
  label="Etikett"
  helptext="Dette er tekst over avmerkingsboksene."
  optionalTag
  optionalText="Valgfritt"
  forId="radioGroup"
  hasFieldset
  hasError
  errorMessage="Dette er en feilmelding"
>
  <PktRadioButton
    id="radio1error"
    label="Radio1 med error"
    name="radiogroup2"
    hasError
  />
  <PktRadioButton
    id="radio2error"
    label="Radio2 med error"
    name="radiogroup2"
  />
</PktInputWrapper>
<PktInputWrapper
  label="Etikett"
  helptext="Dette er tekst over avmerkingsboksene."
  optionalTag
  optionalText="Valgfritt"
  forId="radioGroup"
  hasFieldset
  hasError
  errorMessage="Dette er en feilmelding"
>
  <PktRadioButton
    id="radio2error"
    label="Radio1 med error"
    name="radiogroup2"
    hasError
  />
  <PktRadioButton
    id="radio2error"
    label="Radio2 med error"
    name="radiogroup2"
  />
</PktInputWrapper>

CSS oversikt

Block:

  • .pkt-input-check

Elements:

  • .pkt-input-check__input
  • .pkt-input-check__input-checkbox
  • .pkt-input-check__input-label
  • .pkt-input-check__input-helptext

Modifiers:

  • .pkt-input-check__input--tile
  • .pkt-input-check__input-checkbox--error

Props, slots og events

PropTypeValidationDefaultBeskrivelse
idStringPĂ„krevd-En unik identifikator for komponenten.
nameStringPĂ„krevd-Egenskap for Ă„ gruppere flere RadioButtons sammen slik at brukeren kan velge ett alternativ blant dem
labelStringPĂ„krevd-Tekstetiketten for RadioButton.
defaultCheckedBooleanIkke pÄkrevdfalseStandardverdi for RadioButton.
hasTileBooleanIkke pÄkrevdfalseAngi om komponenten har en Tile.
disabledBooleanIkke pÄkrevdfalseAngi om RadioButton er disabled.
checkHelptextStringIkke pÄkrevd-Valgfri hjelpetekst for Ä beskrive RadioButton mer detaljert.
hasErrorBooleanIkke pÄkrevdfalseAngi om det er en feil i RadioButton.
className(React)string--Tilpasset CSS-klasse for RadioButton
EventsTypeValidationDefaultBeskrivelse
changeVue--UtlÞses nÄr tilstanden til RadioButton endres.
onChangeVue--En annen hendelse som utlÞses nÄr tilstanden til RadioButton endres.