CascadeSelectは、入れ子になったオプション構造から値を選択するためのフォームコンポーネントです。
import CascadeSelect from 'primevue/cascadeselect';
CascadeSelectは、v-modelプロパティとoptionsコレクションを使用して制御されたコンポーネントとして使用されます。グループのラベルを定義するには、optionGroupLabelプロパティが必要であり、グループの子を参照するプロパティを定義するにはoptionGroupChildrenが必要です。optionGroupChildrenの順序はデータ階層に対応する必要があるため重要です。
<CascadeSelect v-model="selectedCity" :options="countries" optionLabel="cname" optionGroupLabel="name"
:optionGroupChildren="['states', 'cities']" style="min-width: 14rem" placeholder="Select a City" />
CascadeSelectは、v-modelプロパティとoptionsコレクションを使用して制御されたコンポーネントとして使用されます。グループのラベルを定義するには、optionGroupLabelプロパティが必要であり、グループの子を参照するプロパティを定義するにはoptionGroupChildrenが必要です。optionGroupChildrenの順序はデータ階層に対応する必要があるため重要です。
<CascadeSelect v-model="selectedCity" :options="countries" optionLabel="cname" optionGroupLabel="name"
:optionGroupChildren="['states', 'cities']" style="min-width: 14rem" placeholder="Select a City">
<template #option="slotProps">
<div class="flex items-center">
<img v-if="slotProps.option.states" :alt="slotProps.option.name" src="https://primefaces.org/cdn/primevue/images/flag/flag_placeholder.png" :class="`flag flag-${slotProps.option.code.toLowerCase()} mr-2`" style="width: 18px" />
<i v-if="slotProps.option.cities" class="pi pi-compass mr-2"></i>
<i v-if="slotProps.option.cname" class="pi pi-map-marker mr-2"></i>
<span>{{ slotProps.option.cname || slotProps.option.name }}</span>
</div>
</template>
</CascadeSelect>
読み込み状態はloadingプロパティを使用して利用できます。
<CascadeSelect loading placeholder="Loading..." style="min-width: 14rem" />
フォーカスされると、入力フィールドの上にフロートラベルが表示されます。詳細については、フロートラベルのドキュメントを参照してください。
<FloatLabel>
<CascadeSelect v-model="selectedCity" inputId="cs-city" :options="countries" optionLabel="cname" optionGroupLabel="name"
:optionGroupChildren="['states', 'cities']" style="min-width: 14rem" placeholder="Select a City" />
<label for="cs-city">City</label>
</FloatLabel>
デフォルトのoutlinedスタイルよりも視覚的な強調表示を高くしてコンポーネントを表示するには、variantプロパティをfilledとして指定します。
<CascadeSelect v-model="selectedCity" variant="filled" :options="countries" optionLabel="cname" optionGroupLabel="name"
:optionGroupChildren="['states', 'cities']" style="min-width: 14rem" placeholder="Select a City" />
無効状態は、invalidプロパティを使用して、検証エラーを示すために表示されます。フォーム検証ライブラリと統合する際に、このスタイルを使用できます。
<CascadeSelect v-model="selectedCity" :invalid="selectedCity === null" :options="countries" optionLabel="cname" optionGroupLabel="name"
:optionGroupChildren="['states', 'cities']" style="min-width: 14rem" placeholder="Select a City" />
disabledが存在する場合、要素は編集およびフォーカスできません。
<CascadeSelect disabled placeholder="Disabled" style="min-width: 14rem" />
コンポーネントを説明する値は、aria-labelledbyまたはaria-labelプロパティのいずれかで指定できます。cascadeselect要素には、aria-haspopupおよびaria-expanded属性に加えて、comboboxロールがあります。コンボボックスとポップアップ間の関係は、ポップアップのIDを参照するaria-controlsで作成されます。
ポップアップリストには、combobox要素のaria-controls属性を参照するIDがあり、ロールとしてtreeを使用します。各リスト項目には、aria-label、aria-selected、aria-expanded属性とともにtreeitemロールがあります。ツリーノードのコンテナ要素には、groupロールがあります。aria-setsize、aria-posinset、aria-level属性は暗黙的に計算され、各treeitemに追加されます。
<span id="dd1"></span>Options</span>
<CascadeSelect aria-labelledby="dd1" />
<CascadeSelect aria-label="Options" />
キー | 機能 |
---|---|
tab | フォーカスをcascadeselect要素に移動します。 |
space | ポップアップを開き、視覚的なフォーカスを選択されたオプションに移動します。選択されていない場合は、最初のオプションにフォーカスが移動します。 |
enter | ポップアップを開き、視覚的なフォーカスを選択されたオプションに移動します。選択されていない場合は、最初のオプションにフォーカスが移動します。 |
下矢印 | ポップアップを開き、視覚的なフォーカスを選択されたオプションに移動します。選択されていない場合は、最初のオプションにフォーカスが移動します。 |
上矢印 | ポップアップを開き、視覚的なフォーカスを選択されたオプションに移動します。選択されていない場合は、最後のオプションにフォーカスが移動します。 |
任意の印刷可能な文字 | ポップアップを開き、ラベルがタイプされた文字で始まるオプションにフォーカスを移動します。選択されていない場合は、最初のオプションにフォーカスが移動します。 |
キー | 機能 |
---|---|
tab | ポップアップを非表示にし、次のタブ可能な要素にフォーカスを移動します。存在しない場合、フォーカス可能なオプションが選択され、オーバーレイが閉じられ、ページの次の要素にフォーカスが移動します。 |
shift + tab | ポップアップを非表示にし、前のタブ可能な要素にフォーカスを移動します。 |
enter | フォーカスされたオプションを選択し、ポップアップを閉じます。 |
space | フォーカスされたオプションを選択し、ポップアップを閉じます。 |
escape | ポップアップを閉じ、フォーカスをcascadeselect要素に移動します。 |
下矢印 | 次のオプションにフォーカスを移動します。 |
上矢印 | 前のオプションにフォーカスを移動します。 |
alt + 上矢印 | フォーカスされたオプションを選択し、ポップアップを閉じ、フォーカスをcascadeselect要素に移動します。 |
右矢印 | オプションが閉じている場合、オプションを開きます。それ以外の場合は、最初の子供オプションにフォーカスを移動します。 |
左矢印 | オプションが開いている場合、オプションを閉じます。それ以外の場合は、親オプションにフォーカスを移動します。 |
home | 入力カーソルを最後に移動します。そうでない場合は、最初のオプションにフォーカスを移動します。 |
end | 入力カーソルを先頭に移動します。そうでない場合は、最後のオプションにフォーカスを移動します。 |
任意の印刷可能な文字 | ラベルがタイプされた文字で始まるオプションにフォーカスを移動します。 |