【问题标题】:Bootstrap Datetimepicker cannot set the date valueBootstrap Datetimepicker 无法设置日期值
【发布时间】:2017-09-21 04:59:44
【问题描述】:

我在我的项目中使用引导程序 datetimepicker。在我的输入控件呈现后,我面临着设置日期值的问题。

首先我将 datetimepicker 设置如下:

$(".date").datetimepicker({
    defaultDate: moment(),
    format: 'YYYY-MM-DD'
}).on('keypress paste', function (e) {
    e.preventDefault();
    return false;
});

然后我通过调用下面的函数来加载控件的实际数据日期值:

function SetDate(control,date)
{
    $('#'+ control).datetimepicker({
        defaultDate: new Date(date)
    });
}

然后 datetimepicker 仅显示当前日期,但当我使用 document.getElementById('elementname').value 获取值时,它返回不是当前日期的正确日期值。

请多多指教。谢谢。

【问题讨论】:

    标签: javascript datetimepicker bootstrap-datetimepicker


    【解决方案1】:

    我猜,对于显示的选项,您使用的是http://eonasdan.github.io/bootstrap-datetimepicker

    你使用选择器的方式是错误的,因为你正在做的是再次调用选择器,最好这样做:

    $('#myDatepicker').datetimepicker();
    

    然后使用您的控件/功能(我将使用触发操作的按钮)

    $('#set').on('click', function() {
      SetDate("myDatepicker", moment().subtract(1, 'day'));
    });
    
    function SetDate(control, date) {
      $('#' + control).data('DateTimePicker').defaultDate(date);
    }
    

    .data('DateTimePicker').defaultDate(date) 是稍后设置的 defaultDate。

    其中moment().subtract(1, 'day'))是一天取出来的,是参数date,不需要再像moment对象那样解析出来; 如果您需要解析字符串日期,您可以使用:

    moment('20170202','YYYY-MM-DD')

    第一个参数是您的日期字符串。 https://momentjs.com/docs/#/parsing/string-format/

    这里是如何为插件http://eonasdan.github.io/bootstrap-datetimepicker/Options/设置选项

    【讨论】:

      【解决方案2】:

      使用以下方法获取值:

      $("#elementname").data('datepicker').getFormattedDate('YYYY-MM-DD');
      

      【讨论】:

      • 感谢您的建议!但我的问题不是获取价值。问题是关于defaultDate。即使我设置了默认日期,但它始终显示我在设置 datepicker 时设置的当前日期而不显示设置日期。此外,即使我选择其他日期值,日期选择器也会继续显示当前日期。顺便说一句,我正在使用 React.js 并将环境视为虚拟 DOM。非常感谢您的好意建议。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多