【问题标题】:set multiple dates on jquery datepicker programmatically以编程方式在 jquery datepicker 上设置多个日期
【发布时间】:2015-02-12 01:59:13
【问题描述】:

我想在内联 jQuery 日期选择器上以编程方式设置多个日期。我有一个日期数组,我想遍历它们,并且在每次迭代时,应该在 datepicker 中选择一个日期。

结果应该是在内联 jQuery 日期选择器上选择的多个日期。

这是我正在尝试的,但我没有取得太大的成功。

for(var j=0; j<dateArr.length; j++){
    $("#inlineDp").datepicker.('setDate',dateArr.pop());
}

【问题讨论】:

    标签: javascript jquery jquery-plugins datepicker


    【解决方案1】:

    第二部分不是方法:它是datepicker constructor 的一部分。

    您需要做的是遍历您的数组并每次都使用该构造函数(但在循环之前初始化日期选择器)。

    至于选择多个日期,默认情况下不能这样做(一次只能选择一个日期),所以你必须使用third party plugin

    $("#inlineDp").datepicker();
    
    for (var j = 0; j < dateArr.length; j++) {
        window.setTimeout(function(){
           $("#inlineDp").datepicker("setDate", dateArr[j]);
        }, 500);
    }
    

    (请注意,为简单起见,此代码没有考虑到problem with timeouts in loops(即它们不起作用)。但是,下面演示中的代码可以(因此您应该使用那里的代码而不是来自上面的解释性示例)。)

    Demo

    【讨论】:

    • 感谢 Astro 的回答。我的数组采用以下形式。即使使用这个数组,我也没有超过脚本。请指导。 dateArr = [2014 年 12 月 3 日星期三 00:00:00,2014 年 12 月 10 日星期三 00:00:00,2014 年 12 月 17 日星期三 00:00:00]
    • @Superman 尝试在循环 like this 的 Date 构造函数中包装每一个。
    • 是的,很酷,它正在工作。我需要的最后一件事是必须一次选择所有日期。这样以后我就可以将这些日期保存到数据库中。在我们的例子中,必须设置 Dec3、Dec10 和 Dec17。
    • 我已经用过类似这样的代码了。 $('#inlineDp').multiDatesPicker('addDates', dateArr[j]);但是行为是一样的,它也选择了最后一个索引日期。
    • @Superman 用该行替换演示中的代码,它应该可以工作(不要忘记在外部资源中添加库)。
    猜你喜欢
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-24
    相关资源
    最近更新 更多