選擇列表

選擇列表用於在不同列表之間重新排序項目。


import PickList from 'primevue/picklist';

選擇列表需要一個多維陣列作為其值,並與 v-model 指令綁定,以及一個內容範本,該範本會透過 slotProps 取得 option 實例和索引。

  • 沒有可用的選項
沒有可用的選項沒有選取的項目
  • 沒有可用的選項
沒有可用的選項沒有選取的項目

<PickList v-model="products" dataKey="id" breakpoint="1400px">
    <template #option="{ option  }">
        {{ option.name }}
    </template>
</PickList>

若要支援自訂內容,請定義一個 option 範本,該範本會將項目實例作為參數取得。此外,還提供了 sourceheadertargetheader 插槽以供進一步自訂。

  • 沒有可用的選項
沒有可用的選項沒有選取的項目
  • 沒有可用的選項
沒有可用的選項沒有選取的項目

<PickList v-model="products" dataKey="id" breakpoint="1400px" scrollHeight="20rem>
    <template #option="{ option , selected }">
        <div class="flex flex-wrap p-1 items-center gap-4 w-full">
            <img class="w-12 shrink-0 rounded" :src="'https://primefaces.org/cdn/primevue/images/product/' + option.image" :alt="option.name" />
            <div class="flex-1 flex flex-col">
                <span class="font-medium text-sm">{{ option.name }}</span>
                <span :class="['text-sm', { 'text-surface-500 dark:text-surface-400': !selected, 'text-inherit': selected }]">{{ option.category }}</span>
            </div>
            <span class="font-bold">${{ option.price }}</span>
        </div>
    </template>
</PickList>

螢幕閱讀器

可以使用 sourceListPropstargetListProps 透過傳遞 aria-labelledbyaria-label 屬性來提供描述來源列表框和目標列表框的值。列表元素具有 listbox 角色,並帶有 aria-multiselectable 屬性。每個列表項目都具有 option 角色,並帶有 aria-selected 作為其屬性。

控制按鈕是帶有 aria-labelbutton 元素,該 aria-label 預設是指 locale API 的 aria.moveToparia.moveUparia.moveDownaria.moveBottomaria.moveToTargetaria.moveAllToTargetaria.moveToSourcearia.moveAllToSource 屬性,或者您可以使用 moveTopButtonPropsmoveUpButtonPropsmoveDownButtonPropsmoveToButtonPropsmoveAllToButtonPropsmoveFromButtonPropsmoveFromButtonPropsmoveAllFromButtonPropsmoveToTargetPropsmoveAllToTargetPropsmoveToSourcePropsmoveAllToSourceProps 來客製化按鈕,例如覆寫預設的 aria-label 屬性。


<span id="lb">Options</span>
<PickList aria-labelledby="lb" />

<PickList aria-label="City" />

列表框鍵盤支援

按鍵功能
tab將焦點移至第一個選取的選項,如果沒有,則第一個選項會接收焦點。
向上箭頭將焦點移至前一個選項。
向下箭頭將焦點移至下一個選項。
enter切換焦點選項的選取狀態。
space切換焦點選項的選取狀態。
home將焦點移至第一個選項。
end將焦點移至最後一個選項。
shift + 向下箭頭將焦點移至下一個選項並切換選取狀態。
shift + 向上箭頭將焦點移至前一個選項並切換選取狀態。
shift + space選取最近選取的選項與焦點選項之間的項目。
control + shift + home選取焦點選項和直到第一個選項的所有選項。
control + shift + end選取焦點選項和直到最後一個選項的所有選項。
control + a選取所有選項。

按鈕鍵盤支援

按鍵功能
enter執行按鈕動作。
space執行按鈕動作。