【问题标题】:how can i disable header year on datepicker?如何在日期选择器上禁用标题年份?
【发布时间】:2020-02-28 10:31:21
【问题描述】:
【问题讨论】:
标签:
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);
}
})