如何为 flatpickr 元素添加 onKeyDown 事件?
How to add onKeyDown event for a flatpickr element?
我想为页面中的 flatpickr 元素添加 onKeyDown 事件。
目前我有以下代码,但这不起作用。该事件没有被解雇。感谢任何帮助。
const dob = flatpickr('#date_of_birth', {
allowInput: true,
altInput: true,
altFormat: "m-d-Y",
dateFormat: "m-d-Y",
wrap: true,
});
window.onload = function() {
if(dob) {
dob.config.onKeyDown.push(function(selectedDates, dateStr, instance) {
console.log("Date Value: " + dateStr); // not printed
});
}
}
编辑:我在我的应用程序中使用 Flatpickr 作为 Vue 组件。
最后我能够使用以下代码获得 onKeyDown 事件:
const dob = flatpickr('#date_of_birth', {
allowInput: true,
altInput: true,
altFormat: "m-d-Y",
dateFormat: "m-d-Y",
wrap: true,
onKeyDown: (selectedDates, dateStr, instance, event) => {
if(event.keyCode != 8) {
var ele = document.activeElement;
var val = ele.value;
if (val.length == 2 || val.length == 5) {
val += '-';
}
ele.value = val;
ele.dispatchEvent(new Event('input'));
}
},
});
希望它对以后的人有所帮助。
我想为页面中的 flatpickr 元素添加 onKeyDown 事件。 目前我有以下代码,但这不起作用。该事件没有被解雇。感谢任何帮助。
const dob = flatpickr('#date_of_birth', {
allowInput: true,
altInput: true,
altFormat: "m-d-Y",
dateFormat: "m-d-Y",
wrap: true,
});
window.onload = function() {
if(dob) {
dob.config.onKeyDown.push(function(selectedDates, dateStr, instance) {
console.log("Date Value: " + dateStr); // not printed
});
}
}
编辑:我在我的应用程序中使用 Flatpickr 作为 Vue 组件。
最后我能够使用以下代码获得 onKeyDown 事件:
const dob = flatpickr('#date_of_birth', {
allowInput: true,
altInput: true,
altFormat: "m-d-Y",
dateFormat: "m-d-Y",
wrap: true,
onKeyDown: (selectedDates, dateStr, instance, event) => {
if(event.keyCode != 8) {
var ele = document.activeElement;
var val = ele.value;
if (val.length == 2 || val.length == 5) {
val += '-';
}
ele.value = val;
ele.dispatchEvent(new Event('input'));
}
},
});
希望它对以后的人有所帮助。