2012-04-13 3 views
1

J'ai un calendrier jQuery. Je dois faire en sorte que seuls lundi ou mardi etc sont sélectionnables en fonction d'autres variables. Maintenant si aujourd'hui est le 27 avril 2012 et les jours sélectionnables sont jeudi avec l'état d'esprit défini comme le 27 avril 2012 ou la date actuelle, le mois par défaut sera toujours avril, même s'il n'y a pas de dates sélectionnables là.Ouvert le mois prochain si la date choisie tombe le mois suivant

Comment puis-je faire en sorte que dans ce cas, le mois par défaut est le mois qui a des jours sélectionnables dans ce cas.

J'espère que la figure sera utile!

enter image description here

Répondre

1

Vous pouvez utiliser une fonction personnalisée pour définir la defaultDate/minDate. Ici, j'ai un tableau qui définit les jours valides de la semaine. Si la date actuelle n'en est pas une, elle avance jusqu'à ce qu'elle en trouve une. Vous pouvez personnaliser quelque chose comme ceci pour votre utilisation particulière:

var validDays = [0, 1, 1, 0, 0, 1, 0]; 

function firstDate() { 
    var valDate = new Date(); 
    valDate.setDate(valDate.getDate() + 14); 
    var day = valDate.getDay(); 
    var i = 0; 
    while (validDays[day] != 1 && i < 7) { 
     valDate.setDate(valDate.getDate() + 1); 
     day = valDate.getDay(); 
     i++; 
    } 
    return valDate; 
} 

function validDate(date) { 
    if (validDays[date.getDay()] == 1) { 
     return [true, ""]; 
    } else { 
     return [false, ""] 
    } 
} 

$(function() { 
    $("#datepicker").datepicker({ 
     beforeShowDay: validDate, 
     minDate: firstDate(), 
     defaultDate: firstDate() 
    }); 
}); 

Démo: http://jsfiddle.net/jtbowden/LgLr9/1/

+0

Merci ça marche, mais je l'ai déjà fixé la date min en +14 jours. dans ce cas, que dois-je changer pour que cela fonctionne – Kaushtuv

+0

Vous devez ajouter 'valDate.setDate (valDate.getDate() + 14);' après la première ligne de 'firstDate()'. Edité ci-dessus. –

+0

Merci fonctionne comme un charme:) – Kaushtuv

Questions connexes