【问题标题】:Not able to set the dates on bootstrap calendar from generated dates variable?无法从生成的日期变量设置引导日历上的日期?
【发布时间】:2020-04-20 22:33:03
【问题描述】:

预期行为

我要做的就是在 ajax 调用之后设置日期。我有来自 PHP 页面的日期数组。因此,所有日期都有望在引导日历上显示为选定日期。

实际行为

日期列表未在引导日历视图中显示为选定/设置的日期。但是,如果我只传递一个日期,例如 23/04/2020,但如果我在变量中传递诸如 23/04/2020,24/04/2020 之类的日期,则它不会设置。

使用的日期选择器版本

Bootstrap v1.8.0 的日期选择器

示例代码

$.ajax({
type: "POST",
url: "remove_data.php",
data: {ch: ch, dh: dh, sp_rec: sp_rec, cartDate: 1},
success: function(data) {
//console.log(data);

            var obj = $.parseJSON(data);

            var myDates = '';
            var temp,temp2;
            for(var i=0;i<obj.length;i++) {
                var temp = obj[i];
                var dt = new Date(temp);
                myDates = myDates+" "+dt+",";
                temp2= obj[1];//0=22 1=23
            }
            temp = "2020-04-23";
            //console.log(myDates);


            var dt2 = new Date(temp2);
            var dt1 = new Date(temp);
            //working...but I don't want this solution...
            $('#disc_single_datepicker_1').datepicker('setDates',[dt1,dt2]); //set two dates....

            //Not working...but I want to make work like below....
            $('#disc_single_datepicker_1').datepicker('setDates',[myDates]); //doesn't set any dates.....however it should set all the provided dates......



            display_toastr(datainfo+" record has been removed!","Remove Record",true,"right","info");
            $("#row_"+dh).fadeOut('slow');

        }, error: function() {
            alert("Something went wrong. Please contact admin!");
        }
    });

【问题讨论】:

  • 请在我尝试修复这么多天时,如果有人可以帮助我解决此代码。

标签: javascript php jquery bootstrap-datepicker


【解决方案1】:

您尝试做的事情是不可能的。

根据the docs

设置日期

参数:

date[, date[, …]] (Date)

[date[, date[, …]]] (Array)

我不确定您添加的 for 循环是否是您实际使用的循环,但如果您这样做 - 不要。
只需将日期推入一个数组,然后将其传递给setDates

var dates = [];
for (var i=0; i<obj.length; i++) {
  var dt = new Date(obj[i]);
  dates.push(dt); 
}
$('#disc_single_datepicker_1').datepicker('setDates',dates); 

【讨论】:

  • 所以你的意思是“如果你这样做 - 不要。只需将日期推入数组,然后将其传递给 setDates。” - 所以你能否在我的代码上提供一个更新的答案,因为不明白你的建议。
  • 我已经在这里花了很多时间,并且希望实际上有人会给我代码,我应该如何在我的代码中实现它。如果您需要更多详细信息,请告诉我。
  • 感谢您提供代码,我会尽快解决这个问题,并会告诉您它是否适合我。
  • 兄弟,你真是太棒了:)它真的很好用。我还在学习,但我不知道我应该尝试推送并将其存储到数组中。
  • 您介意我再次询问您有关日期选择器的问题吗?如果您可以将电子邮件或任何其他有助于我与您联系的信息传递给我。我确信我会再次遇到其他一些与日期选择器相关的问题。让我知道:)
猜你喜欢
  • 1970-01-01
  • 2016-04-19
  • 1970-01-01
  • 2014-05-06
  • 1970-01-01
  • 1970-01-01
  • 2014-12-07
  • 2017-12-24
  • 2019-08-22
相关资源
最近更新 更多