【问题标题】:how can i disable header year on datepicker?如何在日期选择器上禁用标题年份?
【发布时间】:2020-02-28 10:31:21
【问题描述】:

演示和完整代码:https://codepen.io/positivethinking639/pen/LYYejLM

如果我用这个:

.v-date-picker-header__value button {
    pointer-events: none;
}

它有效。但它也会禁用年月

我想启用这个:

并禁用它:

我该怎么做?

【问题讨论】:

    标签: vue.js vuejs2 datepicker vue-component


    【解决方案1】:

    是的,可以使用 js 仅禁用年份

    这里我在mounted hook中添加了一段代码,一旦完整的html渲染完成,这个hook就会被触发

    在这里工作的代码笔:https://codepen.io/chansv/pen/NWWyNwX?editors=1010

        <div id="app">
          <v-app id="inspire">
            <v-row justify="center">
              <v-date-picker v-model="picker" no-title></v-date-picker>
            </v-row>
          </v-app>
        </div>
    
        new Vue({
      el: '#app',
      vuetify: new Vuetify(),
      data () {
        return {
          picker: new Date().toISOString().substr(0, 10),
        }
      },
      mounted() {
        // Select the node that will be observed for mutations
        var targetNode = document.querySelector('.v-picker__body');
        // Options for the observer (which mutations to observe)
        var config = { attributes: true, childList: true };
    
        // Callback function to execute when mutations are observed
        var callback = function(mutationsList) {
            for(var mutation of mutationsList) {
                if (mutation.type == 'childList') {
                  var headerBtn = document.querySelector('.accent--text > button');
                  if (headerBtn.innerHTML.length == 4) {
                    headerBtn.disabled = true;
                    headerBtn.style.cursor = 'default';
                    document.querySelectorAll('.v-date-picker-header > button').forEach(x => {
                      x.disabled = true;
                      x.style.cursor = 'default';
                    });
                  } else {
                    document.querySelectorAll('.v-date-picker-header > button').forEach(x => {
                      x.disabled = false;
                      x.style.cursor = 'pointer';
                    });
                  }
                }
                else if (mutation.type == 'attributes') {
                    console.log('The ' + mutation.attributeName + ' attribute was modified.');
                }
            }
        };
    
        // Create an observer instance linked to the callback function
        var observer = new MutationObserver(callback);
    
        // Start observing the target node for configured mutations
        observer.observe(targetNode, config);
      }
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-29
      • 1970-01-01
      • 1970-01-01
      • 2021-03-06
      • 2020-02-07
      相关资源
      最近更新 更多