如何从引导程序日期选择器中获取更改的日期

How to get the changed date from bootstrap-datepicker

本文关键字:日期 获取 选择器 引导程序      更新时间:2024-04-05

我正在使用Eternicode的引导程序日期选择器库的分支,到目前为止,生成它一切都很顺利,但我想获得日期,以便在更改日期后在逻辑中使用它。

$('#calendar').on('changeDate', function(event, date) {
  // how to pop alert message to print the date I've chosen ?
});

我该怎么做?

如文档中所述,引导程序日期选择器的Eternicode版本为changeDate事件添加了三个属性,可用于访问新选择的日期。您将对.date属性(它指向表示所选日期的实际日期对象)或.format方法感兴趣,可以使用该方法将日期获取为字符串。

假设最简单的情况是(您有一个选择器,并且您希望以与初始化日期选择器相同的格式将日期作为字符串),您只需要调用不带参数的.format()

$('#calendar').on('changeDate', function(event) {
    alert(event.format());
});

以下是一个JSFiddle,展示了这一点:http://jsfiddle.net/bhm7p/3/

将此代码放入jquery函数体:

$(document).ready(function () {
  $('#datepicker').on('dp.change', function(){
    var t=Date.parse($("#dob1").val());    
    if (t > Date.now()) {
      alert('Selected date shold not be a future date');
      $("#dob1").val('');
    }
  });
});

实际上,基本原理是这样的:
您将通过解析为e参数的.on事件访问日期。从e无法访问.getDate

$('#calendar').on('changeDate', function(e) {
    alert(e.getDate()+'/'+e.getMonth()+e.getFullYear());
});

如果你不明白这是怎么发生的,你可以把响应放在console.log(e)而不是alert(e.getDate)中,这样你就可以清楚地了解该访问什么。

您可以尝试两种方法。

尝试实现这一行:

$('#startdate').val()

或者这个:

$('#startdate').data('date')

德鲁·T建议使用.val()-也非常有效。

$('#calendar').on('changeDate', function(event, date) {
    var date = $('#calendar').val();
    alert(date);
});

希望这能有所帮助!