2016-08-19 34 views
1

請注意,這與datetimepicker.js插件不同,它具有相似的名稱和similar problembootsrap datepicker無法在show event上選擇endDate

雖然自定義datepicker的行爲,我看到一個錯誤?如果我設置了結束日期,我無法突出顯示點擊輸入按鈕將選擇今天的日期。

在功能上它很好,但在視覺上它是錯誤的。進入,改變焦點,然後回到控制系統確實有效,但這對我來說不夠好。

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(""); 
    } 
}); 

這段代碼的點是允許空白初始輸入字段,自動選擇(但不提交)今天的日期第一次用戶點擊它。

有人會認爲這兩行代碼可以完成這項工作。他們這樣做,除非你有一個結束日期設定,此時沒有骰子:

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

它不應該是這樣的:

so wrong

它應該是這個樣子:

so right

花費工作時間試圖解決這個問題。任何幫助最受讚賞。

回答

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(""); 
    } 
}); 
+0

我會說這是值得看很多,因爲它解決了我的問題。 :) 謝謝。 – looch