【问题标题】:How to get the changed date from bootstrap-datepicker如何从 bootstrap-datepicker 获取更改的日期
【发布时间】:2013-12-06 00:35:30
【问题描述】:

我正在使用Eternicode's fork of the bootstrap-datepicker library,到目前为止,生成它一切正常,但我想获取日期以便在更改日期后在我的逻辑中使用它。

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

我该怎么做?

【问题讨论】:

    标签: javascript jquery twitter-bootstrap bootstrap-datepicker


    【解决方案1】:

    作为described in the docs,Eternicode 版本的bootstrap-datepicker 为changeDate 事件添加了三个属性,可用于访问新选择的日期。您将对.date 属性(指向代表所选日期的实际date object)或.format 方法感兴趣,您可以使用该方法将日期作为字符串获取。

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

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

    这里有一个 JSFiddle 展示了这一点:http://jsfiddle.net/bhm7p/3/

    【讨论】:

    • 实际上你的小提琴包含不同的代码。它在 .on() 之前调用 .datepicker() - 这是必不可少的。
    • @buffjape 好吧,当然 - 如果您在代码中的某个位置没有调用 .datepicker(),那么您就没有日期选择器。但请注意,.datepicker() 调用仅返回调用它以进行链接的 jQuery 集合,而不是任何类型的特殊日期选择器对象 - 所以您不需要专门针对 .datepicker() 调用的结果调用 .on(),您只需要在代码中的某处调用.datepicker。请参阅 jsfiddle.net/bhm7p/33 以获取此说明。
    【解决方案2】:

    把这段代码放到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('');
        }
      });
    });
    

    【讨论】:

      【解决方案3】:

      其实基本是这样的:
      您将通过解析为e 参数的.on 事件访问日期。从e你不能访问.getDate

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

      如果您不明白这是怎么发生的,您可以将回复放在console.log(e) 而不是alert(e.getDate),这样您就可以清楚地了解要访问的内容。

      【讨论】:

        【解决方案4】:

        您可以尝试两件事。

        尝试实现这一行:

        $('#startdate').val()
        

        或者这个:

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

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

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

        希望这会有所帮助!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-05-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多