如果我在 vuetify 的日期选择器中单击下个月的图标,如何添加按钮单击以调用方法?

Posted

技术标签:

【中文标题】如果我在 vuetify 的日期选择器中单击下个月的图标,如何添加按钮单击以调用方法?【英文标题】:How can I add button click for call a method if I click icon next month in the datepicker on vuetify? 【发布时间】:2020-02-10 22:37:21 【问题描述】:

我想问。如果我在日期选择器中单击下个月的图标,如何添加按钮单击以调用方法?

看看这个:

我该怎么做?

更新:

我使用 vuetify:https://vuetifyjs.com/en/components/date-pickers#date-pickers-allowed-dates

【问题讨论】:

如果您无权访问按钮的代码,则将点击处理程序添加到您有权访问的父级。由于事件冒泡,单击按钮时将调用您的侦听器。只需确保在您的侦听器中添加检查以查看已单击的内容。 据我所知,到目前为止它的文档是它会发出input 事件。所有点击都会发出该事件,因此您需要添加我之前提到的检查。 @a1626 我尝试<v-date-picker @input="test">,但它不起作用 【参考方案1】:

日期选择器模板

<v-date-picker @update:picker-date="updatePickedMonth"></v-date-picker>

//Js函数:

updatePickedMonth(value)
 console.log(value) // will return ex: 2021-09

【讨论】:

【参考方案2】:

我在 Vuetify 的 v-date-picker 上获得了这些事件

在模板中:

  <v-date-picker
      ref="cal"
      ...
   >

在脚本中:

mounted() 
  var vm = this;
  document.querySelector("[aria-label='Next month']").addEventListener('click', function () 
    console.log('next');
    var yyyy_mm = vm.$refs.cal.$data.tableDate;
    console.log(yyyy_mm);
  )
  document.querySelector("[aria-label='Previous month']").addEventListener('click', function () 
    console.log('previous');
    var yyyy_mm = vm.$refs.cal.$data.tableDate;
    console.log(yyyy_mm);
  )

你可以覆盖 aria-label

next-month-aria-label="NextMonth"
prev-month-aria-label="PreviousMonth"

【讨论】:

【参考方案3】:

您可能正在寻找这样的东西:

https://vuetifyjs.com/en/components/date-pickers#date-pickers-react-to-displayed-month-year-change

基本上你应该使用 picker-date.sync 属性并使用观察者观察它的变化。

<v-date-picker v-model="date" :picker-date.sync="pickerDate"/>
export default 
  data() 
    return 
      date: new Date().toISOString().substr(0, 10),
      pickerDate: null,
    
  ),
  watch: 
    pickerDate (newval,oldval) 
      // here you can check if month changed using newval and oldval
    ,
  ,

【讨论】:

嗨。我想再问一次。我可以显示这个月的所有日期吗?比如datepicker显示的时候是10月14日到10月31日的console.log(),我选择11月的时候是11月1日到11月30日的console.log()怎么办? @SuccessMan 这是您必须手动执行的操作。获得当前月份后,您应该创建一个从该月的第一天(或今天)到最后一天的数组。您可以使用 momentjs(或 vue-moment,专门用于 vue),它是一个包含许多有用的日期函数的库 好的,谢谢。以前我认为它可以在 vuetify 上自动完成 @SuccessMan 不幸的是没有。如果您将使用 momentjs,这是一个可以帮助您的功能:momentjs.com/docs/#/displaying/days-in-month 好的,谢谢。但是如何在 vuetify 中安装 moment js?【参考方案4】:

你可以试试这个

   $(document).on('click', '.ui-datepicker-next', function () 
     console.log('next');  
    )

    $(document).on('click', '.ui-datepicker-prev', function () 
      console.log('prev');  
    )

【讨论】:

我使用 vuetify vuetifyjs.com/en/components/…

以上是关于如果我在 vuetify 的日期选择器中单击下个月的图标,如何添加按钮单击以调用方法?的主要内容,如果未能解决你的问题,请参考以下文章

Kendo UI 日期时间选择器 - 选择上/下个月时调用 onclick 函数

Javascript 日期对象:从 5 月 31 日跳转到下个月是 7 月 1 日

日期选择器上/下个月日期可选

单击vuetify中的按钮时如何显示日期选择器?

在 antd 日期选择器中禁用当前日期之前和当前日期 1 个月之后的日期

如何在 vuetify 中自定义日期选择器?