Pertanyaan Bagaimana cara menghapus / mengatur ulang tanggal yang dipilih pada kalender Datepicker UI jQuery?


Bagaimana cara mereset nilai kalender datepicker? .. Pembatasan min dan max date?

Masalahnya adalah bahwa ketika saya menghapus tanggal (dengan menghapus nilai-nilai textbox), pembatasan tanggal sebelumnya masih diterapkan.

Saya telah memilah-milah dokumentasi dan tidak ada yang keluar sebagai solusi. Saya juga tidak dapat menemukan perbaikan cepat pada pencarian SO / google

http://jsfiddle.net/CoryDanielson/tF5MH/


Larutan:

 

// from & to input textboxes with datepicker enabled
var dates = $("input[id$='dpFrom'], input[id$='dpTo']");

// #clearDates is a button to clear the datepickers
$('#clearDates').on('click', function(){
    dates.attr('value', '');
    dates.each(function(){
        $.datepicker._clearDate(this);
    });
});​​

_.clearDate () adalah metode pribadi objek DatePicker. Anda tidak akan menemukannya di API publik di situs web jQuery UI, tetapi berfungsi seperti jimat.


75
2018-02-24 17:17


asal


Jawaban:


Saya mencoba untuk mencapai hal ini, yaitu, mengosongkan datepicker sehingga filter yang dimasukkan oleh pengguna dapat dihapus. Googling sedikit saya menemukan potongan kode yang manis ini:

Anda dapat menambahkan fitur yang jelas bahkan di bidang hanya baca. Cukup tambahkan kode berikut ke datepicker Anda:

}).keyup(function(e) {
    if(e.keyCode == 8 || e.keyCode == 46) {
        $.datepicker._clearDate(this);
    }
});

Orang akan dapat menyorot (bahkan bidang Read Only) dan kemudian menggunakan backspace atau menghapus kunci untuk menghapus tanggal menggunakan _clearDate fungsi.

Sumber


74
2017-09-29 04:37



Apakah Anda mencoba:

$('selector').datepicker('setDate', null);

Itu harus bekerja sesuai dengan Dokumentasi API


49
2017-12-07 11:29



Anda hanya perlu mengatur opsi lagi ke null:

dates.datepicker( "option" , {
    minDate: null,
    maxDate: null} );

Saya telah mengubah jsfiddle Anda: http://jsfiddle.net/tF5MH/9/


21
2018-02-24 17:43



$('.date').datepicker('setDate', null);

11
2018-05-27 05:39



Coba ubah kode kliring menjadi:

$('#clearDates').on('click', function(){
    dates.attr('value', '');
    $("input[id$='dpFrom'], input[id$='dpTo']").datepicker( "option", "maxDate", null );
    $("input[id$='dpFrom'], input[id$='dpTo']").datepicker( "option", "minDate", null );
});

10
2018-02-24 17:23



Coba ini, Ini Akan Menambahkan Tombol Yang Jelas Pada Kalender Jquery yang Akan Menghapus Tanggal.

$("#DateField").datepicker({
    showButtonPanel: true,
    closeText: 'Clear',
         onClose: function (dateText, inst) {
        if ($(window.event.srcElement).hasClass('ui-datepicker-close'))
        {
            document.getElementById(this.id).value = '';
        }
    }
});

7
2017-09-17 07:13



Atur ulang atribut max date pada datepicker Anda saat Anda mengklik clear.

Dari situs web jquery

Get or set the maxDate option, after init.

    //getter
    var maxDate = $( ".selector" ).datepicker( "option", "maxDate" );
    //setter
    $( ".selector" ).datepicker( "option", "maxDate", '+1m +1w' );

3
2018-02-24 17:24



Jawaban yang jelas adalah yang berhasil bagi saya.

$('#datepicker').val('');

di mana $ ('# datepicker') adalah id dari elemen input.


2
2017-09-02 23:53



Saya tahu ini agak terlambat, tapi inilah kode kedamaian sederhana yang melakukannya untuk saya:

$('#datepicker-input').val('').datepicker("refresh");

1
2018-05-26 15:40



$("#datepicker").datepicker({            
        showButtonPanel: true,
        closeText: 'Clear', 
        onClose: function () {
            var event = arguments.callee.caller.caller.arguments[0];                
            if ($(event.delegateTarget).hasClass('ui-datepicker-close')) {
                $(this).val('');
            }
        }
    });

1
2018-03-09 20:00