【问题标题】:bootsrap datepicker can't select endDate on show event引导日期选择器无法选择显示事件的结束日期
【发布时间】:2016-08-19 21:25:52
【问题描述】:

请注意,这与 datetimepicker.js 插件不同,后者具有相似的名称和 similar problem!

在自定义日期选择器行为时,我发现了一个错误?如果我设置了结束日期,我无法突出显示按回车按钮将选择今天的日期。

功能上没问题,但视觉上是错误的。按下回车键,改变焦点,然后回到控件由于某种原因确实有效,但在我的情况下这还不够好。

HTML:

<input id="bs_date" type="text" data-provide="datepicker" data-date-autoclose="true" />

Javascript:

var today = new Date();
$("[data-provide='datepicker']").datepicker("setEndDate", 
    new Date(today.getFullYear(), 
        today.getMonth(), 
        today.getDate())
);

$("[data-provide='datepicker']").on("show", function(e) {
    var isFirstShow = $(this).data("isFirstShow");
    console.log("is not first");

    if(isFirstShow === undefined) {
        console.log("is indeed first");

        $(this).data("isFirstShow", "yes");
        $(this).datepicker('setDate', new Date());
        $(this).datepicker('update');
        $(this).removeAttr('placeholder');
        $(this).val("");
    }
});

这段代码的重点是允许一个空白的初始输入字段,当用户第一次点击它时,它会自动选择(但不提交)今天的日期。

人们会认为这两行代码就可以完成这项工作。他们会这样做,除非您设置了 endDate,否则此时没有骰子:

$(this).datepicker('setDate', new Date());
$(this).datepicker('update');

它不应该是这样的:

so wrong

它应该是这样的:

so right

在工作中花费数小时试图解决此问题。非常感谢任何帮助。

【问题讨论】:

    标签: jquery twitter-bootstrap datepicker


    【解决方案1】:

    fwiw,这似乎有效。

    var today = new Date();
    $("[data-provide='datepicker']").on("show", function(e) {
        var isFirstShow = $(this).data("isFirstShow");
        console.log("is not first");
    
        if(isFirstShow === undefined) {
            console.log("is indeed first");
    
            $(this).data("isFirstShow", "yes");
            $(this).datepicker('setDate', new Date());
            $("[data-provide='datepicker']").datepicker("setEndDate", 
                        new Date(today.getFullYear(), 
                    today.getMonth(), 
                    today.getDate())
            );
            $(this).datepicker('update');
            $(this).removeAttr('placeholder');
            $(this).val("");
        }
    });
    

    【讨论】:

    • 我会说它解决了我的问题,值得一看。 :) 谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多