2012-04-13 6 views
1

Ich habe jQuery-Kalender. Ich muss es so machen, dass nur Montag oder Dienstag etc. wählbar sind abhängig von anderen Variablen. Wenn heute der 27. April 2012 ist und die auswählbaren Tage Donnerstag sind, wird die Einstellung auf den 27. April 2012 oder das aktuelle Datum gesetzt. Der Standardmonat ist immer noch der April, auch wenn dort keine auswählbaren Daten vorhanden sind.Nächsten Monat öffnen, wenn wählbares Datum in den nächsten Monat fällt

Wie kann ich es so machen, dass in diesen Fällen der Standardmonat der Monat ist, der auswählbare Tage enthält.

Ich hoffe, die Zahl wird hilfreich sein!

enter image description here

Antwort

1

Sie können eine benutzerdefinierte Funktion verwenden, um die defaultDate/minDate einzustellen. Hier habe ich ein Array, das gültige Wochentage definiert. Wenn das aktuelle Datum nicht eins ist, wird es vorwärts bewegt, bis es eins findet.

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() 
    }); 
}); 

Demo: http://jsfiddle.net/jtbowden/LgLr9/1/

+0

Dank es funktioniert, aber ich habe bereits das min Datum als 14 Tage festgelegt Sie könnten so etwas wie dies für Ihre Anwendung anpassen. in diesem Fall, was muss ich ändern, damit es funktioniert – Kaushtuv

+0

Sie müssen 'valDate.setDate (valDate.getDate() + 14);' nach der ersten Zeile von 'firstDate()' hinzufügen. Oben bearbeitet. –

+0

Danke funktioniert wie ein Charme:) – Kaushtuv

Verwandte Themen