merisia-select
<merisia-select>
Menu déroulant accessible basé sur un <select> natif. Quand une seule
option est disponible, la flèche est masquée et le champ se comporte comme un champ texte.
Démos
Basique (plusieurs options)
<merisia-select id="province" label="Province" name="province"
hint="Choisissez votre province de résidence."></merisia-select>
<script>
document.getElementById('province').options = [
{ value: 'qc', label: 'Québec' },
{ value: 'on', label: 'Ontario' },
];
</script>
Option unique (sans flèche)
Quand une seule option est disponible, le composant se comporte comme un champ de texte — la flèche de sélection est masquée.
<merisia-select id="country" label="Pays" name="country"></merisia-select>
<script>
// Avec 1 seule option, la flèche disparaît automatiquement
document.getElementById('country').options = [
{ value: 'ca', label: 'Canada' },
];
</script>
Avec erreur
const el = document.querySelector('merisia-select');
el.errors = ["Veuillez choisir une province."];
Lecture seule
const el = document.querySelector('merisia-select');
el.readonly = true;
Propriétés
| Propriété | Attribut | Type | Défaut | Description |
|---|---|---|---|---|
| MerisiaSelect (propres) | ||||
| options | – | SelectOption[] | SelectOptGroup[] | [] | Liste d'options plates ou groupées (propriété JS uniquement) |
| placeholder | placeholder | string | 'Sélectionner…' | Texte de l'option vide (non sélectionnable) |
| hideEmpty | hide-empty | boolean | false | Masque l'option vide |
| MerisiaTextFieldBase (hérités) | ||||
| label | label | string | '' | Texte du libellé |
| hint | hint | string | '' | Aide contextuelle affichée sous le libellé |
| errors | – | string[] | [] | Liste de messages d'erreur (propriété JS uniquement) |
| errorPrefix | error-prefix | string | 'Erreur :' | Préfixe des messages d'erreur (i18n, visuellement masqué) |
| readonly | readonly | boolean | false | Rend le champ non modifiable |
| invalid | invalid | boolean | false |
État d'erreur (synchronisé automatiquement avec errors)
|
| MerisiaFormElement (hérités) | ||||
| name | name | string | '' | Nom du champ dans le formulaire |
| value | value | string | '' | Valeur sélectionnée |
| required | required | boolean | false | Rend la sélection obligatoire |
| disabled | disabled | boolean | false | Désactive le menu |
| MerisiaElement (hérités) | ||||
| id | id | string | auto-généré | Identifiant unique du composant |
| lang | lang | string | 'fr' | Langue pour les messages internes (i18n) |
| width | width | number | – |
Largeur maximale en caractères : max-width: calc(N ch + 1.5rem)
|
Ressources externes
Import
import '@merisia-inc/merisia-components/select';