2017-09-20 3 views
0

J'ai déjà du code fonctionnel dans jQueryUiDatepicker qui désactive les vendredis et samedis et tous les jours précédents (plus 2 jours). Mon problème est d'essayer d'ajouter 2 dates spécifiques à ce code Datepicker existant qui va également désactiver ces dates.Comment désactiver certains jours et dates en utilisant BeforeShowDay dans jQueryUiDatepicker?

Ceci est mon code existant en ligne de départ 92 dans jQueryUiDatepicker:

beforeShowDay: function(date) { 
var show = true; 
if(date.getDay()==5||date.getDay()==6) show=false 
return [show]; 
}, 
    beforeShow: function(){ 
    var dateTime = new Date(); 
    var hour = dateTime.getHours(); 
    //If Hour is greater or equals to 8AM 
    if(hour >= 08){ 
     //Disable all past days including tomorrow and today 
     $(this).datepicker("option", "minDate", "+2"); 
    } 
}, 

Je suis en train de désactiver 18 et 19 Octobre 2017 et à défaut, c'est le code que j'ai ajouté directement sous le code ci-dessus:

beforeShowDay: var array = ['18/10/2017', '19/10/2017'] 

$('input').datepicker({ 
beforeShowDay: function(date){ 
    var string = jQuery.datepicker.formatDate('dd/mm/yy', date); 
    return [ array.indexOf(string) == -1 ] 
    }, 

Ma question est comment puis-je désactiver toutes les dates précédentes, tous les vendredis et samedis et ces 2 dates en octobre?

Note # Ce codage doit être fait dans jquery.ui.datepicker, pas un script en html

Répondre

1

Hope this helps

utilisation inArray au lieu de indexOf et vous pouvez également désactiver toutes les dates précédentes en utilisant minDate

var array = ["18/10/2017", "19/10/2017"]; 
$(function() { 
    $('input').datepicker({ 
     minDate: new Date(), 
     beforeShowDay: function (date) { 
     $thisDate = date.getDate() + "/" + (date.getMonth() + 1) + "/" + date.getFullYear(); 
    var day = date.getDay(); 
    if ($.inArray($thisDate, array) == -1&&day!=5&&day!=6) { 
     return [true, ""]; 
    } else { 
     return [false, "", "Unavailable"]; 
    } 
} 
    }); 
}); 

DEMO

+0

Salut Amal barbante Je peux voir votre exemple wor ks parfaitement bien dans votre violon je ne peux pas obtenir votre code pour travailler dans jquery-ui-datepicker. J'ai essayé un remplacement direct avec mon code (fourni dans la question initiale) et j'ai essayé de hacher et de le changer mais de quelque façon que je le dés ne fonctionne tout simplement pas. Je sais que cela peut être fait sans utiliser javascript externe et html mais pour le moment je suis toujours à la recherche de cette solution. Je pense que pour faire cela tout le code doit venir après beforeShowDay. –

+0

Salut Michael, pouvez-vous reproduire le problème mentionné ci-dessus dans jsfiddle avec vos plugins jquery ui.Je pense que le bug est dû à vos plugins. – Amal