表單日期選擇器

<b-form-datepicker> 是 BootstrapVue 自訂的日期選擇器輸入表單控制項,提供完整的 WAI-ARIA 相容性和國際化支援。

v2.5.0 起提供 BootstrapVue 使用

概觀

作為 <b-calendar> 元件的表單控制包裝元件,它提供額外的驗證狀態表示和精簡介面。原生 HTML5 日期輸入在呈現、易於存取性,以及在某些情況下各方面都不同,而且有些瀏覽器並不支援。 <b-form-datepicker> 提供跨所有瀏覽器平台和裝置的一致且易於存取的介面。

<template>
  <div>
    <label for="example-datepicker">Choose a date</label>
    <b-form-datepicker id="example-datepicker" v-model="value" class="mb-2"></b-form-datepicker>
    <p>Value: '{{ value }}'</p>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        value: ''
      }
    }
  }
</script>

<!-- b-form-datepicker.vue -->

<b-form-datepicker> 支援 <b-calendar> 可用的許多屬性,以及 <b-dropdown> 可用的一些屬性。

v-model 返還值

預設情況下, <b-form-datepicker> 以字串形式回傳 YYYY-MM-DD 格式的日期,這與原生瀏覽器 <input type="date"> 控制項回傳的格式相同。您可以透過設定 value-as-date 屬性,讓 <b-form-datepicker> 回傳 Date 物件 (不含時間部分) 作為 v-model 值。

如果沒有選取日期, <b-form-datepicker> 回傳空的字串 '',如果設定 value-as-date 屬性,則回傳 null

請注意,當設定 value-as-date 時,傳回的 Date 物件會在瀏覽器的預設時區。

如果 <b-form-datepicker> 已為 name 道具設定一個值,將會產生一個隱藏的輸入資料,其 name 屬性設定為 name 道具的值,並且 value 屬性會設定為所選日期的 YYYY-MM-DD 字串。這樣可讓 <b-form-datepicker> 所選的值透過原生瀏覽器表單提交來提交。

停用和唯讀狀態

設定 disabled 道具會移除 <b-form-datepicker> 元件的所有互動性。

設定 readonly 道具會停用選擇日期,但會保留元件的互動性,允許操作日期導覽。v-model 也不會在唯讀狀態更新。

如要停用特定日期或設定最小的和最大的日期限制,請參考 日期限制 區段。

<template>
  <div>
    <b-form-group
      label="Select date picker interactive state"
      v-slot="{ ariaDescribedby }"
    >
      <b-form-radio-group
        v-model="state"
        :aria-describedby="ariaDescribedby"
        aria-controls="ex-disabled-readonly"
      >
        <b-form-radio value="disabled">Disabled</b-form-radio>
        <b-form-radio value="readonly">Readonly</b-form-radio>
        <b-form-radio value="normal">Normal</b-form-radio>
      </b-form-radio-group>
    </b-form-group>

    <b-form-datepicker
      id="ex-disabled-readonly"
      :disabled="disabled"
      :readonly="readonly"
    ></b-form-datepicker>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        state: 'disabled'
      }
    },
    computed: {
      disabled() {
        return this.state === 'disabled'
      },
      readonly() {
        return this.state === 'readonly'
      }
    }
  }
</script>

<!-- b-form-datepicker-disabled-readonly.vue -->

日期限制

最小和最大的日期

利用 minmax 道具限制日曆範圍。道具會接受日期字串,其格式為 YYYY-MM-DD,或是 Date 物件。

<template>
  <div>
    <b-form-datepicker v-model="value" :min="min" :max="max" locale="en"></b-form-datepicker>
  </div>
</template>

<script>
  export default {
    data() {
      const now = new Date()
      const today = new Date(now.getFullYear(), now.getMonth(), now.getDate())
      // 15th two months prior
      const minDate = new Date(today)
      minDate.setMonth(minDate.getMonth() - 2)
      minDate.setDate(15)
      // 15th in two months
      const maxDate = new Date(today)
      maxDate.setMonth(maxDate.getMonth() + 2)
      maxDate.setDate(15)

      return {
        value: '',
        min: minDate,
        max: maxDate
      }
    }
  }
</script>

<!-- b-form-datepicker-min-max.vue -->

停用日期

如果你需要在日期選擇器中停用特定的日期,請為 date-disabled-fn 道具指定一個函式參照。函式會傳遞兩個參數

  • ymd 日期,其格式為 YYYY-MM-DD 字串
  • date 日期,其格式為 Date 物件

該函式應該傳回 true,如果日期 *不能* 被選取(已停用),或是 false,如果日期 *可以* 被選取(已啟用)。請注意,該函式 **不能** 是非同步的,並且應盡快傳回一個值。

<template>
  <div>
    <b-form-datepicker v-model="value" :date-disabled-fn="dateDisabled" locale="en"></b-form-datepicker>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        value: ''
      }
    },
    methods: {
      dateDisabled(ymd, date) {
        // Disable weekends (Sunday = `0`, Saturday = `6`) and
        // disable days that fall on the 13th of the month
        const weekday = date.getDay()
        const day = date.getDate()
        // Return `true` if the date should be disabled
        return weekday === 0 || weekday === 6 || day === 13
      }
    }
  }
</script>

<!-- b-form-datepicker-disabled-dates.vue -->

請注意,minmax 的日期限制會先被評估,然後再評估 date-disabled-fn

驗證狀態

<b-form-datepicker> 支援使用布林 state 道具進行無效和有效的樣式設定。將 state 設定為布林值 false 會將輸入資料設為無效,而將 state 設定為布林值 true 會將輸入資料設為有效。將 state 設定為 null 就不會顯示任何驗證狀態樣式(預設)。

<template>
  <div>
    <label for="datepicker-invalid">Choose a date (invalid style)</label>
    <b-form-datepicker id="datepicker-invalid" :state="false" class="mb-2"></b-form-datepicker>
    <label for="datepicker-valid">Choose a date (valid style)</label>
    <b-form-datepicker id="datepicker-valid" :state="true"></b-form-datepicker>
  </div>
</template>

<!-- b-form-datepicker-invalid-valid.vue -->

請注意,原生瀏覽器驗證 **不適用於** <b-form-datepicker>

樣式設定

變種

預設選取日期按鈕 (背景色) 為 'primary' 主題變體。你可以使用任一 Bootstrap v4 主題變體色: 'secondary''success''danger''warning''info',透過 selected-variant 屬性。

預設使用與選取日期相同的變體來凸顯 (文字顏色) 今日日期。如要為今日日期指定不同的主題色,請使用 today-variant 屬性。

若要完全停用今日日期的凸顯,請設定 no-highlight-today 屬性。

預設導覽按鈕為 'secondary' 主題變體。你可以透過 nav-button-variant 屬性來變更。

控制大小

希望有較小或較大的 <b-form-datepicker> 控制嗎?請將 size 屬性設定為 'sm' 以使用較小的表單控制,或 'lg' 以使用較大的表單控制。請注意,這不會影響彈出式日曆對話方塊的大小。

<template>
  <div>
    <label for="datepicker-sm">Small date picker</label>
    <b-form-datepicker id="datepicker-sm" size="sm" locale="en" class="mb-2"></b-form-datepicker>
    <label for="datepicker-lg">Large date picker</label>
    <b-form-datepicker id="datepicker-lg" size="lg" locale="en"></b-form-datepicker>
  </div>
</template>

<!-- b-form-datepicker-sizes.vue -->

提示文字

在未選取日期時,可使用 placeholder 屬性為控制項加入自訂提示文字。如果未提供提示文字,則會使用 label-no-date-selected 屬性的值。

<template>
  <div>
    <label for="datepicker-placeholder">Date picker with placeholder</label>
    <b-form-datepicker id="datepicker-placeholder" placeholder="Choose a date" locale="en"></b-form-datepicker>
  </div>
</template>

<!-- b-form-datepicker-placeholder.vue -->

選用控制項

透過下列屬性在日曆彈出視窗的底部新增選用控制按鈕 today-buttonreset-buttonclose-button

  • 今日按鈕會選擇今日日期
  • 重設按鈕將清除選取日期或將日期設定為屬性 reset-value 的值 (如果已提供)
  • 關閉按鈕將關閉日曆彈出視窗

預設情況下,按一下今日或重設按鈕也會關閉日曆彈出視窗,除非已設定 no-close-on-select 屬性。

<template>
  <div>
    <label for="datepicker-buttons">Date picker with optional footer buttons</label>
    <b-form-datepicker
      id="datepicker-buttons"
      today-button
      reset-button
      close-button
      locale="en"
    ></b-form-datepicker>
  </div>
</template>

<!-- b-form-datepicker-buttons.vue -->

可透過 label-today-buttonlabel-reset-buttonlabel-close-button 屬性設定選用按鈕的文字。建議保持這些標籤簡短,因為底部區段的寬度有限。

請注意,如果今日日期超出 minmax 日期範圍限制,則 設定今日 按鈕可能無法將控制項設定為今日日期。如果超出範圍,它會設定為 minmax (取決於哪個較接近今日日期)。

使用下列下拉式選單屬性來控制彈出式日曆的位置:rightdropupdroprightdropleftno-flipoffset

請參考 <b-dropdown> 定位區段 以取得這些屬性效果及用法的詳細資訊。

預設開啟日曆日期

v2.7.0+

預設情況下,當沒有選取日期時,在開啟時,日曆檢視將會設為目前月份(或 minmax 日期,如果今天的日期超出 minmax 的範圍時)。你可以藉由指定一個日期,透過 initial-date prop,來變更這個 behavior。初始日期的 prop 將用來決定一開始要呈現在使用者眼前的日曆月份。它不會設定元件的值。

黑暗模式

想要一個奇特的快顯視窗,背景為深色,而不是淺色嗎?將 dark prop 設為 true,以啟用深色背景。

可選擇的十年導覽按鈕

將 prop show-decade-nav 設為 true,在日期選擇器的日期導覽工具列中,就能啟用上一個和下一個十年的按鈕。

prop label-prev-decadelabel-next-decade 可用來為十年按鈕提供自訂標籤文字。

若想看範例用法,請參閱以下的 國際化 區塊。

僅按鈕模式

v2.7.0+

幻想只是一個按鈕,開啟日期選擇器對話方塊,或想提供你自訂的文字輸入欄位嗎?使用 button-only prop,將日期選擇器呈現在下拉式按鈕中。格式化的日期標籤將使用 sr-only 類別(僅供螢幕閱讀程式使用)來呈現。

在以下的簡單範例中,我們將日期選擇器(僅按鈕模式)置於 <b-input-group> 的附加項,而且我們將使用 context 事件取得格式化的日期字串和值

<template>
  <div>
    <label for="example-input">Choose a date</label>
    <b-input-group class="mb-3">
      <b-form-input
        id="example-input"
        v-model="value"
        type="text"
        placeholder="YYYY-MM-DD"
        autocomplete="off"
      ></b-form-input>
      <b-input-group-append>
        <b-form-datepicker
          v-model="value"
          button-only
          right
          locale="en-US"
          aria-controls="example-input"
          @context="onContext"
        ></b-form-datepicker>
      </b-input-group-append>
    </b-input-group>
    <p class="mb-1">Value: '{{ value }}'</p>
    <p class="mb-1">Selected: '{{ selected }}'</p>
    <p>Formatted: '{{ formatted }}'</p>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        value: '',
        formatted: '',
        selected: ''
      }
    },
    methods: {
      onContext(ctx) {
        // The date formatted in the locale, or the `label-no-date-selected` string
        this.formatted = ctx.selectedFormatted
        // The following will be an empty string until a valid date is entered
        this.selected = ctx.selectedYMD
      }
    }
  }
</script>

<!-- b-form-datepicker-button-only.vue -->

透過 size prop 來控制按鈕的大小,透過 button-variant prop 來控制按鈕變異。

日期字串格式

v2.6.0+

若想變更元件中顯示日期文字的格式選項,例如標頭或 placeholder,將 date-format-options prop 設為一個物件,其中包含對 Intl.DateTimeFormat 物件要求的格式 properties(請參閱 國際化)。

<template>
  <div>
    <label for="datepicker-dateformat1">Custom date format</label>
    <b-form-datepicker
      id="datepicker-dateformat1"
      :date-format-options="{ year: 'numeric', month: 'short', day: '2-digit', weekday: 'short' }"
      locale="en"
    ></b-form-datepicker>

    <label class="mt-3" for="datepicker-dateformat2">Short date format</label>
    <b-form-datepicker
      id="datepicker-dateformat2"
      :date-format-options="{ year: 'numeric', month: 'numeric', day: 'numeric' }"
      locale="en"
    ></b-form-datepicker>
  </div>
</template>

<!-- b-form-datepicker-dateformat.vue -->

下表總結了每個格式 property 的有效選項

屬性 可能的數值
year 'numeric',或 '2-digit'
month 'numeric', '2-digit', 'long', 'short',或 'narrow'
day 'numeric',或 '2-digit'
weekday 'long', 'short',或 'narrow'

注意事項

  • 遺漏某些選項可能會影響格式化的文字字串,例如 weekday
  • 格式化的數值將會根據解析的當地設定而有所不同。一些當地設定可能不支援 'narrow' 格式,而且會回歸到 'short'long'(如果沒有 'short'
  • year, monthday 務必會顯示。如果你需要遺漏一個數值,將 property 設為 undefined,儘管由於易用性理由強烈不鼓勵這麼做

星期名稱標頭格式

2.12.0+

日曆星期名稱標頭格式預設為 'short',通常是星期名稱的 3 個字元縮寫,儘管有些 當地語言設定 可能覆寫它。此格式可透過道具 weekday-header-format 來控制並接受下列三個值之一

  • 'long' 完整的星期名稱(例如 星期二)。在使用完整寬度的日曆時很方便。請避免與預設日曆寬度一起使用。
  • 'short' 通常是星期名稱的 2 或 3 個字母縮寫,視選取的當地語言設定而定(例如「週二」)。
  • 'narrow' 通常是單字元縮寫(例如 T)。在某些當地語言設定中,兩個星期可能具有相同的窄式樣式(例如星期二和星期四的窄式樣式都是 T)。對於不支援 'short' 格式的當地語言設定(例如當地語言設定 'ar''fa')來說,這可能會很方便。

日期導覽按鈕插槽

2.12.0+

若要變更日曆的日期導覽按鈕內容,BootstrapVue 會為每個按鈕提供範圍限定插槽

  • 'nav-prev-decade'
  • 'nav-prev-year'
  • 'nav-prev-month'
  • 'nav-this-month'(前往選取/今天按鈕)
  • 'nav-next-month'
  • 'nav-next-year'
  • 'nav-next-decade'

所有七個插槽都具有相同的可用範圍限定屬性

屬性 類型 說明
isRTL 布林值 當日期導覽列從右到左呈現地,將為 true

可以將 isRTL 作用域屬性用於「反轉」前一個按鈕與下一個按鈕的內容,以處理從左到右到從右到左的方位變化 — 也就是說,當 isRTLtrue 時,前一年按鈕會在右側,而不是在左側。

全寬度日曆下拉選單

若要建立全寬度日曆下拉選單(其寬度與輸入寬度相符),只需將 menu-class 道具設定為 'w-100',並將 calendar-width 道具設定為 '100%'

<template>
  <div>
    <label for="datepicker-full-width">Choose a date</label>
    <b-form-datepicker
      id="datepicker-full-width"
      v-model="value"
      menu-class="w-100"
      calendar-width="100%"
      class="mb-2"
    ></b-form-datepicker>
    <p>Value: '{{ value }}'</p>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        value: ''
      }
    }
  }
</script>

<!-- b-form-datepicker-full-width.vue -->

國際化

日期選擇器的日曆國際化是透過 Intl.DateTimeFormat 提供的,但日曆控制元件元件套用的標籤(無障礙標籤、選取狀態和說明文字)除外。必須為這些標籤提供自己的翻譯。可用的當地語言設定會根據瀏覽器而定(並非所有瀏覽器都支援所有當地語言設定)

預設情況下,<b-form-datepicker> 會使用瀏覽器的預設當地語言設定,但你可以透過 locale 道具指定要使用的當地語言設定(或當地語言設定)。道具接受單一當地語言設定字串或當地語言設定字串陣列(以偏好的當地語言設定順序列出)。

日曆從星期天開始該週。可透過設定 start-weekday 道具為範圍 06 中的數字來變更。其中 0 代表星期日、1 代表星期一,直到 6 代表星期六。

<template>
  <div>
    <label for="example-locales">Locale:</label>
    <b-form-select id="example-locales" v-model="locale" :options="locales" class="mb-2"></b-form-select>

    <label for="example-weekdays">Start weekday:</label>
    <b-form-select id="example-weekdays" v-model="weekday" :options="weekdays" class="mb-2"></b-form-select>

    <div>
      <b-form-checkbox v-model="showDecadeNav" switch inline class="my-2">
        Show decade navigation buttons
      </b-form-checkbox>

      <b-form-checkbox v-model="hideHeader" switch inline class="my-2">
        Hide calendar header
      </b-form-checkbox>
    </div>

    <label for="example-i18n-picker">Date picker:</label>
    <b-form-datepicker
      id="example-i18n-picker"
      v-model="value"
      v-bind="labels[locale] || {}"
      :locale="locale"
      :start-weekday="weekday"
      :show-decade-nav="showDecadeNav"
      :hide-header="hideHeader"
      class="mb-2"
     ></b-form-datepicker>
     <p>Value: <b>'{{ value }}'</b></p>
   </div>
</template>

<script>
  export default {
    data() {
      return {
        value: '',
        locale: 'en-US',
        showDecadeNav: false,
        hideHeader: false,
        locales: [
          { value: 'en-US', text: 'English US (en-US)' },
          { value: 'de', text: 'German (de)' },
          { value: 'ar-EG', text: 'Arabic Egyptian (ar-EG)' },
          { value: 'zh', text: 'Chinese (zh)' }
        ],
        weekday: 0,
        weekdays: [
          { value: 0, text: 'Sunday' },
          { value: 1, text: 'Monday' },
          { value: 6, text: 'Saturday' }
        ],
        labels: {
          de: {
            labelPrevDecade: 'Vorheriges Jahrzehnt',
            labelPrevYear: 'Vorheriges Jahr',
            labelPrevMonth: 'Vorheriger Monat',
            labelCurrentMonth: 'Aktueller Monat',
            labelNextMonth: 'Nächster Monat',
            labelNextYear: 'Nächstes Jahr',
            labelNextDecade: 'Nächstes Jahrzehnt',
            labelToday: 'Heute',
            labelSelected: 'Ausgewähltes Datum',
            labelNoDateSelected: 'Kein Datum gewählt',
            labelCalendar: 'Kalender',
            labelNav: 'Kalendernavigation',
            labelHelp: 'Mit den Pfeiltasten durch den Kalender navigieren'
          },
          'ar-EG': {
            weekdayHeaderFormat: 'narrow',
            labelPrevDecade: 'العقد السابق',
            labelPrevYear: 'العام السابق',
            labelPrevMonth: 'الشهر السابق',
            labelCurrentMonth: 'الشهر الحالي',
            labelNextMonth: 'الشهر المقبل',
            labelNextYear: 'العام المقبل',
            labelNextDecade: 'العقد القادم',
            labelToday: 'اليوم',
            labelSelected: 'التاريخ المحدد',
            labelNoDateSelected: 'لم يتم اختيار تاريخ',
            labelCalendar: 'التقويم',
            labelNav: 'الملاحة التقويم',
            labelHelp: 'استخدم مفاتيح المؤشر للتنقل في التواريخ'
          },
          zh: {
            weekdayHeaderFormat: 'narrow',
            labelPrevDecade: '过去十年',
            labelPrevYear: '上一年',
            labelPrevMonth: '上个月',
            labelCurrentMonth: '当前月份',
            labelNextMonth: '下个月',
            labelNextYear: '明年',
            labelNextDecade: '下一个十年',
            labelToday: '今天',
            labelSelected: '选定日期',
            labelNoDateSelected: '未选择日期',
            labelCalendar: '日历',
            labelNav: '日历导航',
            labelHelp: '使用光标键浏览日期'
          }
        }
      }
    }
  }
</script>

<!-- b-form-datepicker-i18n.vue -->

可以監聽 context 事件來判斷日曆已解析為哪些當地語言設定和方向性。

請參閱 <b-calendar> 文件以取得更多詳細資訊。

無障礙

彈出式日曆支援相同 <b-calendar>鍵盤控制項,以及以下

  • Esc 將關閉彈出式日曆而不會選取日期

將日期選擇器國際化時,請務必同時用適當的翻譯字串更新 label-* 個別屬性,這樣國際螢幕朗讀機使用者才能聽見正確的提示和說明。

請參閱 <b-calendar> 文件以取得更多詳細資訊。

實作備註

<b-form-datepicker> 是基於元件 <b-calendar><b-dropdown>

<b-form-datepicker> 使用 Bootstrap 的邊框和彈性公用程式類別,以及按鈕 (btn-*) 類別、下拉清單 (dropdown*) 類別,以及 form-control* (加上驗證) 類別。BootstrapVue 的自訂 SCSS/CSS 也是正確設定日期選擇器和日曆樣式所必需的。

另請參閱

元件參考

<b-form-datepicker>

v2.5.0+

元件別名

<b-form-datepicker> 也可以透過以下別名使用

  • <b-datepicker>

注意:僅當匯入所有 BootstrapVue 或使用元件群組外掛程式時,元件別名才可用。

屬性

所有屬性的預設值都可 全域設定

屬性
(按一下以遞增排序)
類型
(按一下以遞增排序)
預設值
說明
aria-controls
字串如果此元件控制另一個元件或元素,請將其設為受控制元件或元素的 ID
boundary
HTMLElementString'scrollParent'選單的邊界約束:`'scrollParent'`, `'window'`, `'viewport'`, 或對應 `HTMLElement` 的參考
button-only
v2.7.0+
布林值false將日期選擇器顯示成下拉按鈕,而不是表單控制項
button-variant
v2.7.0+
字串'secondary'當處於 `button-only` 模式時,要使用的按鈕變體。如果沒有設定 `button-only` 屬性,則無作用
calendar-width
v2.6.0+
字串'270px'設定日曆下拉寬度(關於詳細資訊,請參閱 `b-calendar` 屬性 `width`)
close-button
布林值false設定後,顯示選用關閉按鈕
close-button-variant
字串'outline-secondary'可選 `close` 按鈕要使用的按鈕變體
dark
布林值false設定後,會讓彈出式日曆對話框具有深色背景
date-disabled-fn
函式設定為傳回 `true`(日期已停用),或 `false`(日期應啟用)的函式參照。關於詳細資訊,請參閱文件說明
date-format-options
v2.6.0+
物件{ 'year': 'numeric', 'month': 'long', 'day': 'numeric', 'weekday': 'long' }傳遞給 `Intl.DateTimeFormat` 的顯示文字字串的格式物件
date-info-fn
v2.12.0+
函式設定為傳回類別(字串)或類別(字串陣列)以套用至日期儲存格的函式參照。關於詳細資訊,請參閱日曆文件說明。傳遞至子日曆元件
direction
字串將字串設定為 'rtl' 或 'ltr',以明確強制日曆以右對左或左對右(順序)模式顯示。預設為解析出的語言環境的方向性
disabled
布林值false將日曆設定為不可互動的停用狀態
dropleft
布林值false設定後,將選單定位在按鈕左側
dropright
布林值false設定後,將選單定位在按鈕右側
dropup
布林值false設定後,將選單定位在按鈕上方
form
字串表單控制項所屬的表單 ID。設定控制項上的 `form` 屬性
header-tag
字串'header'指定要顯示的 HTML 標籤,而不是標頭的預設標籤
hide-header
布林值false當設為 `true` 時,會隱藏選取的日期標頭
id
字串用於設定已顯示的內容上的 `id` 屬性,並用於當有需要時產生任何其他元素 ID 作為基礎
initial-date
v2.7.0+
DateString當未指定 `value` 時,設定會顯示給使用者的初始日曆月份日期。接受 `YYYY-MM-DD` 格式的值或 `Date` 物件。預設為目前日期(或最小值或最大值,如果目前日期超出範圍)
label-calendar
字串'Calendar'套用至日曆格線的 `aria-label` 和 `role-description` 屬性的值
label-close-button
字串'Close'選用 `Close` 按鈕的內容
label-current-month
字串'Current month'`Current Month` 導航按鈕上 `aria-label` 和 `title` 屬性的值
label-help
字串'Use cursor keys to navigate calendar dates'顯示於日曆格線底部的提示文字
label-nav
字串'Calendar navigation'日曆導航按鈕包裝器上的 `aria-label` 屬性的值
label-next-decade
v2.11.0+
字串'Next decade'選用 `Next Decade` 導航按鈕上 `aria-label` 和 `title` 屬性的值
label-next-month
字串'Next month'`Next Month` 導航按鈕上 `aria-label` 和 `title` 屬性的值
label-next-year
字串'Next year'`Next Year` 導航按鈕上 `aria-label` 和 `title` 屬性的值
label-no-date-selected
字串'No date selected'當目前未選取日期時要使用的標籤
label-prev-decade
v2.11.0+
字串'Previous decade'選用 `Previous Decade` 導航按鈕上 `aria-label` 和 `title` 屬性的值
label-prev-month
字串'Previous month'導覽按鈕「上個月」的 `aria-label` 和 `title` 屬性的值
label-prev-year
字串'上一年'導覽按鈕「上一年」的 `aria-label` 和 `title` 屬性的值
label-reset-button
字串'重設'選用按鈕「重設」的內容
label-selected
字串已選取的日曆網格日期按鈕的 `aria-label` 屬性設定值
label-today
字串'今天'日曆網格日期按鈕的 `aria-label` 屬性值,表示日期為今日
label-today-button
字串'選擇今天'選用按鈕「選擇今天」的內容
locale
陣列字串日曆使用的區域設定 (或多個區域設定)。傳遞多個區域設定時,區域設定順序是由最優先到優先度最低
max
DateString日曆將顯示的最大日期
menu-class
v2.6.0+
陣列物件字串套用至彈出式功能表外框的類別 (或多個類別)
min
DateString日曆將顯示的最小日期
name
字串設定表單控制項上 `name` 屬性的值
nav-button-variant
v2.17.0+
字串'secondary'導覽按鈕使用的主題色彩變數
no-close-on-select
布林值false在按一下/選取日期時,停用關閉彈出式日期選擇器
no-flip
布林值false防止功能表自動反轉位置
no-highlight-today
布林值false停用日曆中今日日期的重點標示
offset
數字字串0指定要移動功能表的像素數目。支援負值
placeholder
字串當未選取日期時顯示於表單控制項中的文字。預設為 `label-no-date-selected` 屬性的值
popper-opts
物件{}傳遞至 Popper.js 的額外設定
readonly
布林值false將日曆設置為互動的唯讀狀態。停用更新 v-model,但仍允許日期導覽
required
布林值false設定時,元件上會新增 `aria-required="true"` 屬性。驗證必需由您的應用程式處理
reset-button
布林值false設定時,將顯示選用按鈕「reset」
reset-button-variant
字串'outline-danger'選用按鈕「reset」使用的按鈕變數
reset-value
DateString按一下選用按鈕「reset」時,所選日期將會設定為此值。預設為清除所選值
right
布林值false將功能表的右緣與按鈕的右緣對齊
selected-variant
字串'primary'選取日期按鈕使用的主題色彩變數
show-decade-nav
v2.11.0+
布林值false如果為 `true`,則會顯示 +/- 十年導覽按鈕
size
字串設定元件外觀的大小。'sm'、'md' (預設) 或 'lg'
start-weekday
數字字串0開始日曆的星期。週日為 `0`、週一為 `1`、週六為 `6` 等
state
布林值null控制元件的驗證狀態外觀。正確為 `true`、不正確為 `false` 或無驗證狀態為 `null`
today-button
布林值false設定時,將顯示選用按鈕「select today」
today-button-variant
字串'outline-primary'選用按鈕「select today」使用的按鈕變數
today-variant
字串用於重點標示今日日期按鈕的主題色彩變數。預設為 `selectedVariant` 屬性
value
v-model
DateString最初選取的日期值。接受 `YYYY-MM-DD` 字串或 `Date` 物件
value-as-date
布林值false傳回 `Date` 物件給 v-model,而非 `YYYY-MM-DD` 字串
weekday-header-format
v2.12.0+
字串'short'用於週曆星期抬頭格式。可能的數值為 `long`、`short` (預設值) 或 `narrow`

v-model

屬性
事件
valueinput

置入項目

名稱
範圍
說明
button-content v2.6.0+放置於日期選擇器圖示按鈕中的內容
nav-next-decade v2.12.0+用於在下一十年導覽按鈕中放置自訂內容
nav-next-month v2.12.0+用於在下一個月導覽按鈕中放置自訂內容
nav-next-year v2.12.0+用於在下一年導覽按鈕中放置自訂內容
nav-prev-decade v2.12.0+用於在上一個十年導覽按鈕中放置自訂內容
nav-prev-month v2.12.0+用於在上一個月導覽按鈕中放置自訂內容
nav-prev-year v2.12.0+用於在上一年導覽按鈕中放置自訂內容
nav-this-month v2.12.0+用於在這個月/日導覽按鈕中放置自訂內容

事件

事件
引數
說明
content
  1. context - `b-calendar` content 物件。請參閱 `b-calendar` 文件取得詳細資訊
`b-calendar` content 事件。當使用者透過日期導覽按鈕或游標控制變更活動日期時發出
hidden v2.9.0+當選取器快顯隱藏時發出
input
  1. date - 以 `YYYY-MM-DD` 格式的字串或 `Date` 物件 (若 `value-as-date` 屬性為 `true`)
更新 v-model 時發出
shown v2.9.0+當選取器快顯顯示時發出

匯入個別元件

你可以透過下列命名匯出,匯入個別元件至專案

元件
命名匯出
匯入路徑
<b-form-datepicker>BFormDatepickerbootstrap-vue

範例

import { BFormDatepicker } from 'bootstrap-vue'
Vue.component('b-form-datepicker', BFormDatepicker)

匯入為 Vue.js 外掛

此外掛包含上述所有個別元件. 外掛也包含任何元件別名。

命名匯出
匯入路徑
FormDatepickerPluginbootstrap-vue

範例

import { FormDatepickerPlugin } from 'bootstrap-vue'
Vue.use(FormDatepickerPlugin)