sta*_*ari 6 datetime datetimepicker flatpickr
我在一个项目上使用了惊人的flatpickr,并且需要强制指定日历日期。
我试图在本机 HTML 中进行所有验证,所以我天真地尝试将required属性添加到输入标记,但这似乎不起作用。
有没有办法用 flatpickr 本地强制日期,还是我需要编写一些自定义检查?
Cla*_*lim 11
您可以通过以下方式轻松实现这一目标:
传入
allowInput:trueflatpickr 配置。
例如:
flatpickrConfig = {
allowInput: true, // prevent "readonly" prop
};
Run Code Online (Sandbox Code Playgroud)
从文档中:
允许用户直接在输入字段中输入日期。默认情况下,直接输入被禁用。
此解决方案的缺点是您应该启用直接输入(但理想情况下,无论是否启用直接输入,都应该进行表单验证)。
但如果你不想启用直接输入来解决这个问题,你可以使用下面的代码作为解决方法:
flatpickrConfig = {
allowInput:true,
onOpen: function(selectedDates, dateStr, instance) {
$(instance.altInput).prop('readonly', true);
},
onClose: function(selectedDates, dateStr, instance) {
$(instance.altInput).prop('readonly', false);
$(instance.altInput).blur();
}
};
Run Code Online (Sandbox Code Playgroud)
此代码readonly在未获得焦点时删除该属性,以便可以进行 html 验证,并readonly在获得焦点时重新添加该属性以防止手动输入。有关它的更多详细信息请参见此处。
在深入研究 GitHub 存储库后,我发现了一个已关闭的问题,指出该问题不会得到解决。
在同一问题页面中,有一个解决方法似乎可以解决问题:
$('.flatpickr-input:visible').on('focus', function () {
$(this).blur()
})
$('.flatpickr-input:visible').prop('readonly', false)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5404 次 |
| 最近记录: |