Pertanyaan jQuery Date Picker - menonaktifkan tanggal yang lalu


Saya mencoba memilih rentang tanggal dengan menggunakan pemilih tanggal UI.

di dari / ke lapangan orang tidak boleh dapat melihat atau memilih tanggal sebelum hari ini.

Ini adalah kode saya:

$(function() {
    var dates = $( "#from, #to" ).datepicker({
        defaultDate: "+1w",
        changeMonth: true,
        numberOfMonths: 1,
        onSelect: function( selectedDate ) {
            var option = this.id == "from" ? "minDate" : "maxDate",
                instance = $( this ).data( "datepicker" ),
                date = $.datepicker.parseDate(
                    instance.settings.dateFormat ||
                    $.datepicker._defaults.dateFormat,
                    selectedDate, instance.settings );
            dates.not( this ).datepicker( "option", option, date );
        }
    });
});

Dapatkah seseorang memberitahu saya cara menonaktifkan tanggal sebelum tanggal sekarang.


75
2017-12-02 12:31


asal


Jawaban:


Anda harus membuat objek tanggal baru dan mengaturnya sebagai minDate ketika Anda menginisialisasi datepicker

<label for="from">From</label> <input type="text" id="from" name="from"/> <label for="to">to</label> <input type="text" id="to" name="to"/>

var dateToday = new Date();
var dates = $("#from, #to").datepicker({
    defaultDate: "+1w",
    changeMonth: true,
    numberOfMonths: 3,
    minDate: dateToday,
    onSelect: function(selectedDate) {
        var option = this.id == "from" ? "minDate" : "maxDate",
            instance = $(this).data("datepicker"),
            date = $.datepicker.parseDate(instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings);
        dates.not(this).datepicker("option", option, date);
    }
});

Sunting - dari komentar Anda sekarang berfungsi seperti yang diharapkan http://jsfiddle.net/nicolapeluchetti/dAyzq/1/


93
2017-12-02 12:53



Mendeklarasikan tanggalHari ini variabel dan penggunaan Tanggal () berfungsi untuk mengaturnya .. kemudian gunakan variabel tersebut untuk menetapkan ke minDate yang merupakan parameter datepicker.

var dateToday = new Date(); 
$(function() {
    $( "#datepicker" ).datepicker({
        numberOfMonths: 3,
        showButtonPanel: true,
        minDate: dateToday
    });
});

Itu saja ... Jawaban di atas sangat membantu ... teruskan orang-orang ..


66
2018-04-02 14:28



$('#datepicker-dep').datepicker({
    minDate: 0
});

minDate:0 bekerja untukku.


42
2017-10-15 06:12



Gunakan opsi "minDate" untuk membatasi tanggal paling awal yang diizinkan. Nilai "0" berarti hari ini (0 hari dari hari ini):

    $(document).ready(function () {
        $("#txtdate").datepicker({
            minDate: 0,
            // ...
        });
    });

Dokumen di sini: http://api.jqueryui.com/datepicker/#option-minDate


14
2018-02-27 13:07



Hanya untuk ditambahkan ke ini:

Jika Anda juga perlu mencegah pengguna untuk mengetik secara manual tanggal di masa lalu, ini adalah solusi yang mungkin. Inilah yang akhirnya kami lakukan (berdasarkan jawaban @Nicola Peluchetti)

var dateToday = new Date();

$("#myDatePickerInput").change(function () {
    var updatedDate = $(this).val();
    var instance = $(this).data("datepicker");
    var date = $.datepicker.parseDate(instance.settings.dateFormat || $.datepicker._defaults.dateFormat, updatedDate, instance.settings);

    if (date < dateToday) {
        $(this).datepicker("setDate", dateToday);
    }
});

Apa yang dilakukan adalah mengubah nilai menjadi tanggal hari ini jika pengguna secara manual mengetikkan tanggal di masa lalu.


7
2018-05-14 08:15



Demo Live ,coba ini,

    $('#from').datepicker(
     { 
        minDate: 0,
        beforeShow: function() {
        $(this).datepicker('option', 'maxDate', $('#to').val());
      }
   });
  $('#to').datepicker(
     {
        defaultDate: "+1w",
        beforeShow: function() {
        $(this).datepicker('option', 'minDate', $('#from').val());
        if ($('#from').val() === '') $(this).datepicker('option', 'minDate', 0);                             
     }
   });

4
2017-07-11 13:24



Dokumentasi API jQuery - datepicker

Tanggal minimum yang dapat dipilih. Saat disetel ke null, tidak ada minimum.

Beberapa jenis didukung:

Tanggal: Objek tanggal yang berisi tanggal minimum.
Jumlah: Beberapa hari dari hari ini. Sebagai contoh 2 mewakili two days mulai hari ini dan -1 mewakili yesterday.
Tali: String dalam format yang ditentukan oleh dateFormat pilihan, atau tanggal relatif.
Tanggal relatif harus mengandung pasangan nilai dan periode; periode yang valid adalah y untuk years, m untuk months, w untuk weeks, dan d untuk days. Sebagai contoh, +1m +7d mewakili one month and seven days dari today.

Agar tidak menampilkan tanggal sebelumnya selain hari ini

$('#datepicker').datepicker({minDate: 0});

2
2017-09-16 11:39



"mindate"Atribut harus digunakan untuk menonaktifkan tanggal yang diteruskan di datepicker jquery.

minDate: Tanggal baru () Atau minDate: '0' adalah kunci untuk ini.

Ex:

$(function() {
    $( "#datepicker" ).datepicker({minDate: new Date()});
});

ATAU

$(function() {
  $( "#datepicker" ).datepicker({minDate: 0});
});

2
2018-04-21 11:40



ganti saja kode Anda:

kode lama:

$("#dateSelect").datepicker({
    showOtherMonths: true,
    selectOtherMonths: true,
    changeMonth: true,
    changeYear: true,
    showButtonPanel: true,
    dateFormat: 'yy-mm-dd'

});

kode baru:

$("#dateSelect").datepicker({
    showOtherMonths: true,
    selectOtherMonths: true,
    changeMonth: true,
    changeYear: true,
    showButtonPanel: true,
    dateFormat: 'yy-mm-dd',
    minDate: 0
});

2
2017-12-10 10:55



set atribut startDate dari datepicker, ia bekerja, di bawah ini adalah kode kerja

$(function(){
$('#datepicker').datepicker({
    startDate: '-0m'
    //endDate: '+2d'
}).on('changeDate', function(ev){
    $('#sDate1').text($('#datepicker').data('date'));
    $('#datepicker').datepicker('hide');
});
})

1
2018-04-24 09:26



Ini cara mudah untuk melakukan ini

$('#datepicker').datepicker('setStartDate', new Date());

juga kita dapat menonaktifkan hari-hari mendatang

$('#datepicker').datepicker('setEndDate', new Date());

1
2017-12-29 10:03