Rating

評分元件是一個基於星星的選擇輸入。


import Rating from 'primevue/rating';

評分元件使用 v-model 屬性進行雙向數值綁定。


<Rating v-model="value" />

評分元件與 PrimeVue 表單 庫無縫整合。


<Form v-slot="$form" :resolver="resolver" :initialValues="initialValues" @submit="onFormSubmit" class="flex flex-col gap-4 w-40">
    <div class="flex flex-col items-center gap-2">
        <Rating name="rating" />
        <Message v-if="$form.rating?.invalid" severity="error" size="small" variant="simple">{{ $form.rating.error?.message }}</Message>
    </div>
    <Button type="submit" severity="secondary" label="Submit" />
</Form>

要顯示的星星數量使用 stars 屬性定義。


<Rating v-model="value" :stars="10" />

自訂圖示用於使用 oniconofficoncancelicon 插槽覆蓋預設圖示。


<Rating v-model="value">
    <template #onicon>
        <img src="/images/rating/custom-onicon.png" height="24" width="24" />
    </template>
    <template #officon>
        <img src="/images/rating/custom-officon.png" height="24" width="24" />
    </template>
</Rating>

當存在 readOnly 時,數值無法編輯。


<Rating v-model="value" readonly />

當存在 disabled 時,會應用視覺提示來指示旋鈕無法互動。


<Rating v-model="value" disabled />

螢幕閱讀器

評分元件內部使用僅對螢幕閱讀器可見的單選按鈕。要讀取項目的值,是透過 aria 屬性的 starstarslocale API 檢索。

鍵盤支援

鍵盤互動衍生自瀏覽器對群組中單選按鈕的原生處理。

按鍵功能
tab如果沒有值,則將焦點移動到代表該值的星星,否則第一個星星接收焦點。
左箭頭上箭頭將焦點移動到前一個星星,如果沒有前一個星星,則最後一個單選按鈕接收焦點。
右箭頭下箭頭將焦點移動到下一個星星,如果沒有下一個星星,則第一個星星接收焦點。
空格鍵如果焦點星星不代表該值,則將該值更改為星星的值。