【问题标题】:Bootstrap datepicker set date manually not workingBootstrap datepicker手动设置日期不起作用
【发布时间】:2017-09-01 18:37:57
【问题描述】:

我有一个旧版网络应用程序正在使用一些旧版本的引导日期选择器。我在这里上传了整个 datepicker.js 文件。 https://pastebin.com/aYzMrWgW

我正在尝试设置我的开始日期选择器,以便当它发生变化时,我会选择所选的值并计算所选月份的最后一天,并将该值设置为结束日期的值。

我正在使用下面的代码从开始日期选择器$('#dp1') 中获取值,并尝试将其设置为结束日期选择器$('#dp1a') 的值。当我检查控制台时,我的 lastDay 变量是正确的。如果我选择 8/1/2017 - 它会注销 2017 年 8 月 31 日和儿子的字符串表示形式。但是我无法让它用正确的值更新结束日期。

$('#dp1').datepicker().on('changeDate', function(ev) {
  $('.datePickerStart').change();
});

$('.datePickerStart').change(function() {
  // Parse the date and get the last day of the month selected
  var date = new Date($(this).val());
  var lastDay = new Date(date.getFullYear(), date.getMonth() + 2, 0);
  console.log(lastDay);


  $('#dp1a').datepicker('setValue', lastDay);
});

如果我像上面那样调用 setValue,它会将值设置为 2017 年 9 月 1 日。

谁能指出我做错了什么?

【问题讨论】:

  • $('#dp1a').datepicker('setValue', lastDay.split('/').reverse().join('-'));怎么样
  • .split 不是控制台中的函数错误。 lastDay 是一个 Date 对象。

标签: twitter-bootstrap twitter-bootstrap-3 bootstrap-datepicker


【解决方案1】:

您的引导日期选择器版本太旧,似乎没有完整的方法.datepicker('setValue', value)。与当前版本相比,缺少一些代码行。您可以检查差异here。 即使我使用您的版本对您的代码进行了一些更改以设置值。

$(document).ready(function(){
var second = $('#dp1a').datepicker().data('datepicker');
$('#dp1').datepicker().on('changeDate', function(ev) {
  $('.datePickerStart').change();
});

$('.datePickerStart').change(function() {
  // Parse the date and get the last day of the month selected
  var date = new Date($(this).val());
  var lastDay = new Date(date.getFullYear(), date.getMonth() + 2, 0);
  console.log(lastDay);
  second.date=lastDay;
    second.setValue();
});
});

old version fiddle

但您的代码在使用当前版本更新后可以完美运行。使用最新版本总是更好地轻松利用这些方法。

current version fiddle

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2021-06-15
    • 2012-07-15
    • 2014-11-05
    • 2011-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多