# InputNumber (compteur)
Champ de saisie numérique. Prend en charge les bornes min/max, le pas (step) et la contrainte de multiple (stepStrictly), le nombre de décimales (precision), l'affichage des boutons +/− et trois tailles ; les touches ↑/↓ du clavier incrémentent également.
Compteur
<template>
<div class="demo-col" style="gap: 20px">
<div class="demo-row" style="gap: 16px; flex-wrap: wrap; align-items: center">
<LhInputNumber v-model="count" :min="1" :max="99" :step="1" placeholder="Quantité" name="count" />
<span class="demo-note">min=1 max=99, valeur contrôlée : {{ count }}</span>
</div>
<div class="demo-row" style="gap: 16px; flex-wrap: wrap; align-items: center">
<LhInputNumber v-model="price" :step="0.5" :precision="2" :min="0" />
<span class="demo-note">step=0.5 precision=2 : {{ price }}</span>
</div>
<div class="demo-row" style="gap: 16px; flex-wrap: wrap; align-items: center">
<LhInputNumber v-model="strict" :step="10" step-strictly />
<span class="demo-note">stepStrictly : à la perte de focus, la valeur s'aligne sur un multiple de 10</span>
</div>
<div class="demo-row" style="gap: 16px; flex-wrap: wrap; align-items: center">
<LhInputNumber v-model="noControls" :controls="false" placeholder="Pas d'incrément" />
<LhInputNumber v-model="disabledVal" disabled />
</div>
<div class="demo-row" style="gap: 16px; flex-wrap: wrap; align-items: center">
<LhInputNumber v-model="sized" size="small" />
<LhInputNumber v-model="sized" size="medium" />
<LhInputNumber v-model="sized" size="large" />
</div>
<p class="demo-note">controls=false masque les boutons +/− ; lorsque le champ a le focus, les flèches directionnelles (↑/↓) incrémentent également.</p>
</div>
</template>
<script>
export default {
data: () => ({
count: 6,
price: 12.5,
strict: 20,
noControls: undefined,
disabledVal: 3,
sized: 8,
}),
}
</script>
# Props
| Propriété | Description | Type | Valeur par défaut |
|---|---|---|---|
| v-model | Valeur liée (model : modelValue/input) | number \| null | null |
| min | Valeur minimale (les valeurs inférieures sont ramenées à min) | number | — |
| max | Valeur maximale (les valeurs supérieures sont ramenées à max) | number | — |
| step | Pas d'incrémentation | number | 1 |
| stepStrictly | La valeur saisie doit être un multiple de step (alignement à la perte de focus) | boolean | false |
| precision | Nombre de décimales (arrondi en cas de dépassement) | number | — |
| controls | Affiche les boutons +/− | boolean | true |
| size | Taille | 'small' \| 'medium' \| 'large' | 'medium' |
| disabled | Désactivé | boolean | false |
| placeholder | Texte du placeholder | string | — |
| name | Attribut name natif | string | — |
| sx | Raccourci de mise en page sx | — | — |
# Events
| Événement | Description | Paramètres de rappel |
|---|---|---|
| input | Événement v-model | (val) |
| change | Déclenché lorsque la valeur change | (val) |
# Accessibilité
Les boutons +/− sont des button natifs ; les touches ↑/↓ incrémentent lorsque le champ a le focus ; placé dans un LhFormItem, le composant reçoit aria-invalid en cas d'échec de validation.
Copyright © 2024-2026 FengMo WenXue