【问题标题】:JQuery datepicker set defaultvalueJQuery datepicker设置默认值
【发布时间】:2012-05-01 16:33:51
【问题描述】:

我使用this date picker。我需要在页面加载时输入为空,但在 datepicke popap 上将默认值设置为今天。现在当我刚写的时候:

$(".dp").datepicker({
                format: 'dd.mm.yyyy',
                startDate: '01.01.2012',
                endDate: ''
});;

弹出数据选择器时,默认情况下是 1970 年 1 月的第一个。如何更改默认值?

【问题讨论】:

  • 既然它不是该插件的一个选项,并且让它工作需要某种技巧,为什么不使用有这个选项的 jQuery UI 日期选择器呢?

标签: javascript jquery datepicker


【解决方案1】:

快速但有效

  var myDate = new Date();
  var date = myDate.getFullYear() + '-' + ('0'+ myDate.getMonth()+1).slice(-2) + '-' + ('0'+ myDate.getDate()).slice(-2);
  $("#datepicker").val(date);

【讨论】:

    【解决方案2】:

    您可以从show 事件中做到这一点,但我不得不说 datepicker 的文档确实缺乏。方法如下:

    (function() {
    
      $(".dp").datepicker({
        format: 'dd.mm.yyyy',
        startDate: '01.01.2012',
        endDate: ''
      }).on("show", function() {
        $(this).val("01.05.2012").datepicker('update');
      });
    
    })();
    

    当然,在我有01.05.2012 的地方,输入实际日期。

    【讨论】:

    • @knocte:它工作得很好。如果您查看运行实时示例的控制台,您会发现自示例创建以来的一年中,引导链接已经腐烂。我现在已经更新了它们。
    • @Walllzzz:刚刚烂掉的实时链接就是这样,请随时在更新中进行编辑。我已经删除了实时示例,因为它并不是真正必要的并且一直在腐烂。
    【解决方案3】:

    如果有人遇到这种情况,他们希望显示输入值中的默认值以及初始化 datetimepicker,这对我有用。我将 html 中的值设置为 data-val 并在 ready 函数中检查它。然后,我使用 moment 来转换字符串并设置初始选择器值:

    $(function(){
      if($('#complianceBy').data('val').length){
      $('#complianceBy').data('DateTimePicker').date(moment($('#complianceBy').data('val')));
     }
    });
    

    【讨论】:

      【解决方案4】:

      在 bootstrap-datepicker.js(~ 第 331 行)更改:

      date = new Date(1971, 1, 1, 0, 0, 0),
      

      date = new Date(),
      

      【讨论】:

      • 当有更简洁的方式从外部获取行为时,您应该非常谨慎地在库中进行编辑(请参阅已接受的答案)。
      • 这是一种非常危险的方式,因为您正在修改框架本身
      猜你喜欢
      • 1970-01-01
      • 2013-01-12
      • 2020-11-23
      • 1970-01-01
      • 1970-01-01
      • 2012-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多