有没有办法在 bootstrap-datetimepicker 中禁用月份/视图模式按钮?

Posted

技术标签:

【中文标题】有没有办法在 bootstrap-datetimepicker 中禁用月份/视图模式按钮?【英文标题】:Is there a way to disable the month/viewmode button in bootstrap-datetimepicker? 【发布时间】:2021-11-26 19:20:26 【问题描述】:

我已将引导程序从版本 3 更新到 4,并注意到在使用 js 而不是 cshtml 创建日历时日历重叠。无需返回超过几天,因此我想禁用将查看模式更改为几个月或几年的月份按钮。是否有我需要的特定 CSS 属性,或者我需要在库中编辑代码?

function AddDateTimeControl(parent, control, rowIndex, controlIndex) 
    var dateTimeID = "datetimepicker" + controlIndex;

    var tooltipDiv = CreateTooltipDiv();
    var tooltipSpan = CreateTooltipSpan(control.ToolTip);
    var label = CreateControlLabel(control);
    //var icon = CreateIcon('fa-calendar');
    var icon = CreateIcon("calendar-alt-regular");

    tooltipDiv.appendChild(label);
    tooltipDiv.appendChild(icon);
    tooltipDiv.appendChild(tooltipSpan);

    var dateDiv = document.createElement("div");
    dateDiv.classList.add('input-group');
    dateDiv.classList.add('date');
    dateDiv.classList.add('date-time-control');
    dateDiv.style.color = "black";
    dateDiv.id = dateTimeID;

    var dateTextBox = document.createElement("input");
    dateTextBox.type = "text";
    dateTextBox.classList.add("form-control");
    dateTextBox.value = control.RawValues[0];

    MarkElementForSerialization(dateTextBox, rowIndex, control.ID, 0);

    var calControlSpan = document.createElement("span");
    calControlSpan.classList.add('input-group-append'); //input-group-addon?
    //span -> fa-calendar?

    dateDiv.appendChild(dateTextBox);
    dateDiv.appendChild(calControlSpan); //input-group-addon

    parent.appendChild(tooltipDiv);
    parent.appendChild(dateDiv);

    $(dateDiv).datetimepicker();
    $(dateDiv).data("DateTimePicker").sideBySide(true);
    $(dateDiv).data("DateTimePicker").date(new Date(Date.parse(control.RawValues[0])));
    $(dateDiv).data("DateTimePicker").format("MM/DD/YYYY HH:mm");
    $(dateDiv).data("DateTimePicker").icons(
        time: "fa fa-clock-o",
        date: "fa fa-calendar",
        up: "fa fa-arrow-up",
        down: "fa fa-arrow-down",
        previous: "fa fa-chevron-left",
        next: "fa fa-chevron-right",
        today: "fa fa-clock-o",
        clear: "fa fa-trash-o"
    );

    $(dateTextBox).on('click', function() 
        $(dateDiv).data("DateTimePicker").toggle();
    );

【问题讨论】:

【参考方案1】:

这完全取决于您使用的日期时间选择器组件。

This one 允许您设置最大视图:

$(dateDiv).datetimepicker( maxView: 1 )

但是,它从未更新为支持 Bootstrap 4。

该选择器已被弃用,取而代之的是 eonasdan-bootstrap-datetimepicker,它可以选择设置 minimum 视图,但不能设置 maximum 视图。如果您想添加该选项,则需要深入了解 the code for that version。

有一个更新版本的 Eonasdan 选择器,现在称为 tempus dominus,目前处于 alpha 阶段。该版本提供options to turn the individual views on or off:

$(dateDiv).tempusDominus(
   display: 
     viewMode: 'date',
     components: 
       decades: false,
       year: false,
       month: false,
       date: true,
       hours: true,
       minutes: true,
       seconds: false
     
   
)

【讨论】:

我用的是asp.net,tempus dominus能用吗? 是的,我在MVC5项目中使用过,没有问题。 你能详细说明你是如何让它在 asp.net 上工作的吗?您是否修改了 bundle/config 文件?【参考方案2】:

我最终通过禁用月份选择器开关中的指针事件来禁用它。

th.picker-switch[title="Select Month"] 
    pointer-events: none;

【讨论】:

以上是关于有没有办法在 bootstrap-datetimepicker 中禁用月份/视图模式按钮?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法在 compojure 中进行热重载?

有没有办法在 REST API Jersey 中检测预检请求?

在Qt(或者C++)中,有没有办法得到一个类的变量的名字?

有没有办法在javascript中获取当前时区? [复制]

有没有办法在 Catalina 上安装 Valgrind?

有没有办法在咖啡脚本中包含文件?