0

Bootstrap 3 Datetimepicker v4 http://eonasdan.github.io/bootstrap-datetimepicker/を Moment 2.9 およびその他の必要なファイルと共に使用します。

入力フィールドの値に関係なく、ユーザーがピッカーで日付を選択したときに変更イベントをトリガーする必要があります。入力に空の値を使用し、代わりに最大許容値を持つプレースホルダーを使用することは私にとって理にかなっています。

<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 を選択しようとしても入力フィールドが更新されないことがわかります。

4

3 に答える 3

4

バグだと思います。コンソールに警告があります:

非推奨の警告: 瞬間の構築が js Date にフォールバックします。これは推奨されておらず、今後のメジャー リリースで削除される予定です。詳細については、 https://github.com/moment/moment/issues/1407を参照してください。

松葉杖を使用してこれを修正できます。

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

日付を +1 に設定して無効にします。

デモ https://jsfiddle.net/maxlipsky/waoLzwz5/4/

于 2015-02-23T05:30:26.537 に答える
2

これを修正する方法はmaxDate、次のように設定することです。

maxDate: new Date().setHours(23,59,59,999)

maxDate をnew Date()only に設定すると、ページがレンダリングされるまでに選択可能な最大日付が過ぎているため、今日の日付を選択することはできません。

于 2019-01-17T09:56:08.827 に答える