dsfr_number_field

Génère un champ de saisie numérique <input type="number"> au DSFR.

Documentation DSFR - Champ de saisie

Usage basique

<%= f.dsfr_number_field :age %>

<div class="fr-input-group">
  <label class="fr-label" for="usage-basique_age">Âge</label>
  <input class="fr-input" type="number" name="usage-basique[age]" id="usage-basique_age" />
</div>

Options disponibles

OptionTypeDescription
min:IntegerValeur minimale
max:IntegerValeur maximale
step:IntegerIncrément

Les mêmes options que dsfr_text_field sont également disponibles.

Avec texte d'aide

<%= f.dsfr_number_field :age, hint: "Votre âge en années" %>

<div class="fr-input-group">
  <label class="fr-label" for="hint_age">Âge<span class="fr-hint-text">Votre âge en années</span></label>
  <input class="fr-input" type="number" name="hint[age]" id="hint_age" />
</div>

Avec min et max

<%= f.dsfr_number_field :age, min: 0, max: 120 %>

<div class="fr-input-group">
  <label class="fr-label" for="min-max_age">Âge</label>
  <input class="fr-input" min="0" max="120" type="number" name="min-max[age]" id="min-max_age" />
</div>

Avec step

<%= f.dsfr_number_field :age, step: 5 %>

<div class="fr-input-group">
  <label class="fr-label" for="step_age">Âge</label>
  <input class="fr-input" step="5" type="number" name="step[age]" id="step_age" />
</div>

Champ en erreur

Affiche le champ avec un message d'erreur lorsque le modèle contient des erreurs de validation.

Âge Ce champ est obligatoireÂge L'âge doit être compris entre 0 et 120

<%= f.dsfr_number_field :age %>

<div class="fr-input-group fr-input-group--error">
  <div class="field_with_errors">
    <label class="fr-label" for="erreur_age">Âge</label>
  </div>
  <div class="field_with_errors">
    <input class="fr-input" type="number" name="erreur[age]" id="erreur_age" />
  </div>
  <p class="fr-messages-group">
    <span class="fr-message fr-message--error">Âge Ce champ est obligatoire</span>
    <span class="fr-message fr-message--error">Âge L'âge doit être compris entre 0 et 120</span>
  </p>
</div>