0

使用引導程序3 Datetimepicker v4 http://eonasdan.github.io/bootstrap-datetimepicker/以及Moment 2.9和其他所需文件。Bootstrap DateTimePicker問題在輸入沒有值時選擇maxDate

當用戶使用選取器選擇日期時,無論輸入字段的值如何,我都需要觸發更改事件。對我而言,輸入爲空的值並使用具有最大允許值的佔位符是有意義的。

<div class="row"> 
<div class="col-sm-6"><div class="form-group"> 
<div class="input-group date" id="dayjump"> 
<input type="text" class="form-control" value="" placeholder="24" name="dayportal" id="dayportal" /> 
<span class="input-group-addon"><i class="fa fa-calendar"></i></span> 
</div> 
</div></div> 
</div> 

我似乎遇到的問題是,當輸入沒有值時,不能選擇maxDate。佔位符的存在似乎在這個問題上沒有任何區別。

$("#dayjump").datetimepicker({ 
    useCurrent: false, 
    format: "D", 
    minDate: moment("2/7/2015","M/D/YYYY"), 
    maxDate: moment("02/24/2015","M/D/YYYY"), 
    icons: { 
     time: "fa fa-clock-o", 
     date: "fa fa-calendar", 
     up: "fa fa-arrow-up", 
     down: "fa fa-arrow-down", 
     previous: "fa fa-angle-left", 
     next: "fa fa-angle-right", 
     today: "fa fa-thumb-tack", 
     clear: "fa fa-trash" 
    } 
}); 
$("#dayjump").on("dp.change",function (e) { 
    var y = moment(e.date).format("YYYY"); 
    _m = moment(e.date).format("M"); 
    _d = moment(e.date).format("D"); 
    alert("year=" + y + " month=" + _m + " date=" + _d); 
}); 

看到這裏https://jsfiddle.net/spasticdonkey/waoLzwz5/1/

撥弄你會在本例中注意到,除了所有的maxDate日期可以選擇,並試圖選擇的maxDate不會更新輸入字段爲好。

+0

你能得到更清晰的伴侶.. – Outlooker 2015-02-23 04:26:58

回答

3

我想,這是錯誤。我在控制檯中發出警告:

棄用警告:轉矩施工回落到js日期。這是不鼓勵,將在即將到來的主要版本中被刪除。有關更多信息,請參閱https://github.com/moment/moment/issues/1407

您可以使用柺杖來解決這個問題:

maxDate: moment("02/25/2015","M/D/YYYY"), 
disabledDates: [ 
     "02/25/2015" 
], 

設置日期+1和禁用它。

DEMOhttps://jsfiddle.net/maxlipsky/waoLzwz5/4/

+0

感謝您的時間和你的建議可能是我的一個可能的解決方案,但我的實際形式是更復雜一點,有月份和年份選擇採摘;這產生了不同的錯誤。 'TypeError:o.find不是一個函數'[link](http://jsfiddle.net/spasticdonkey/bfw9zm3c/1/) – 2015-02-23 06:11:27

+0

你是對的,這是一個bug,看起來已經在他們的開發分支中解決了。 – 2015-02-24 16:57:03

+0

此後一年,這個bug已經修復了嗎? – 2016-08-19 06:22:53