Multiple-Dates-Picker-for-jQuery-UI icon indicating copy to clipboard operation
Multiple-Dates-Picker-for-jQuery-UI copied to clipboard

onDeselect event

Open v1nk0 opened this issue 7 years ago • 2 comments

The default jQuery UI DatePicker only allows for one date to be picked and therefore only supports a onSelect event (theres no deselect, just a select of a different date)

Because this plugin supports deselecting dates, it really lacks a onDeselect event at this moment.

v1nk0 avatar Aug 27 '17 14:08 v1nk0

If you change the toggleDate function to look like this `toggleDate : function( date, type ) { if(!type) type = 'picked';

                            switch(this.multiDatesPicker.mode) {
                                    case 'daysRange':
                                            /* Added to set select status */
                                            this.multiDatesPicker.selected=1;
                                            this.multiDatesPicker.dates[type] = []; // deletes all picked/disabled dates
                                            var end = this.multiDatesPicker.autoselectRange[1];
                                            var begin = this.multiDatesPicker.autoselectRange[0];
                                            if(end < begin) { // switch
                                                    end = this.multiDatesPicker.autoselectRange[0];
                                                    begin = this.multiDatesPicker.autoselectRange[1];
                                            }
                                            for(var i = begin; i < end; i++)
                                                    methods.addDates.call(this, methods.sumDays.call(this,date, i), type);
                                            break;
                                    default:
                                           // adds dates, had to add brackets // 
                                            if(methods.gotDate.call(this, date) === false) {
                                                      /* Added to set select status */
                                                    this.multiDatesPicker.selected=1;
                                                    methods.addDates.call(this, date, type, 'True');
                                            } else {

                                                   // removes dates //
                                                        /* Added to set select status */
                                                   this.multiDatesPicker.selected=0;
                                                    methods.removeDates.call(this, date, type);
                                            break;
                                            }
                            }
                    },

`

Then in the onselect function you can check if it was selected. if(this.multiDatesPicker.selected) { }

taquitosensei avatar Sep 26 '17 13:09 taquitosensei

Agree with v1nk0. An onDeselect event is necessary !

LionelMeroni avatar Feb 09 '18 11:02 LionelMeroni