J'utilise Vue avec Vuetify et j'ai actuellement un formulaire avec un groupe de boutons radio:
<v-radio-group label="Active?">
<v-radio name="active" label="No" value="0" v-bind:checked="active === 0"></v-radio>
<v-radio name="active" label="Yes" value="1" v-bind:checked="active === 1"></v-radio>
</v-radio-group>
Au chargement de la page, actif défini sur 1:
data: {
active: 1
}
Je vois que l'entrée a vérifié = "vérifié" mais l'icône reste comme "radio_button_unchecked" donc ne semble pas être vérifiée:
<input aria-label="Yes" aria-checked="false" role="radio"
type="radio" value="1" name="active" checked="checked">
<div class="v-input--selection-controls__ripple"></div>
<i aria-hidden="true" class="v-icon material-icons theme--light">radio_button_unchecked</i>
Image du bouton radio vuetify non cochée
Si je clique sur le bouton radio, cela change l'icône en radio_button_checked, mais au chargement de la page, cela ne semble pas se produire. Comment faire pour que vuetify se charge avec radio_button_checked si l'entrée à laquelle il est associé est vérifiée?
L'élément <v-radio>
Ne prend pas en charge un attribut "vérifié" comme le fait <input type="radio">
. Au lieu de cela, le bouton radio actuellement coché est géré par l'encapsuleur <v-radio-group>
.
Le code suivant devrait fonctionner:
<v-radio-group label="Active?" v-model="active">
<v-radio name="active" label="No" :value="0"></v-radio>
<v-radio name="active" label="Yes" :value="1"></v-radio>
</v-radio-group>
Selon Vuetify docs tous les composants de sélection doivent inclure un accessoire de modèle en v, dans ce cas, v-model="active"
. Le groupe radio aura alors sa valeur en fonction de la variable "active" dans vos données. Si la valeur "active" est égale à l'un des accessoires :value="..."
Dans les éléments <v-radio>
, Cet élément sera vérifié. Voir aussi this codepen.
N'oubliez pas d'ajouter un :
Avant votre valeur prop ou il ne sera pas lié par Vue.