Zmienna jQuery datepicker minDate


Używam DatePicker jQuery. W moim polu tekstowym „Data końcowa” chciałbym użyć daty wybranej z pola „Data rozpoczęcia” + 1. Jak to zrobić?
Próbowałem, ale nie zadziałało. W moim kodzie daty rozpoczęcia miałem ...
test = $(this).datepicker('getDate');
testm = new Date(test.getTime());
testm.setDate(testm.getDate() + 1);

Następnie w moim kodzie daty zakończenia miałem ...
minDate: testm,

ale data zakończenia jest nadal dostępna we wszystkie dni miesiąca.

Edytować.

Ciekaw jestem, dlaczego to nie działa. W moim selektorze daty rozpoczęcia mam to ...
onSelect: function (dateText, inst) {
test = dateText
}

Dlaczego nie mogę przejść do selektora daty zakończenia i powiedzieć
minDate: test
?

Edytować.

Wciąż nie działa
$(".dateStartDatePickerBox").datepicker({
minDate:'-0d',
onSelect: function(dateText, inst)
{
test = $(this).datepicker('getDate');
testm = new Date(test.getTime());
testm.setDate(testm.getDate() + 1); $("#dateEndDatePickerBox").datepicker("option", "minDate", testm);
}
}); $(".dateEndDatePickerBox").datepicker({
onSelect: function()
{ }
});

Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Będziesz musiał dynamicznie ustawić minimalną datę w zdarzeniu zmiany daty rozpoczęcia.
Raczej:
$("#startDate").change(function() {
test = $(this).datepicker('getDate');
testm = new Date(test.getTime());
testm.setDate(testm.getDate() + 1); $("#endDate").datepicker("option", "minDate", testm);
});


Odpowiedz, aby edytować

:
Nie możesz wykonać następujących czynności:
var test;
$("#myinput").datepicker({
onSelect: function() { test = $(this).datepicker("getdate"); }
});
$("#myotherinput").datepicker({
minDate: test
});

Test nie jest inicjowany, gdy minDate jest ustawione na
myotherinput
. Proces ustawiania minDate niewątpliwie wymaga manipulacji DOM, którą wykonuje datepicker podczas inicjalizacji lub wywołania "opcji". Zwykła zmiana zmiennej użytej do inicjalizacji nie wpływa na już zainicjowany DatePicker.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Czy mówisz o ustawieniu maksymalnej daty pobrania?
StartDate = new Date("March 20, 2010");
EndDate = new Date("March 21, 2010");$("#datepicker").datepicker({ minDate: StartDate, maxDate: EndDate, defaultDate: StartDate });

Zwróć uwagę na maxDate? To nie pozwoli Ci wybrać dnia po nim ...
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

The API

dokumentacja
http://docs.jquery.com/UI/Date ... nDate
ponieważ selektor dat wydaje się mówić, że powinien akceptować obiekt daty, ale miałem dokładnie ten problem w przeszłości i tak go rozwiązałem.
Hasło
minDate

stronniczość

zamiast randki. Będziesz potrzebować funkcji, aby wziąć datę początkową, dodać ją do niej, a następnie uzyskać przesunięcie z dzisiaj. Więc możesz mieć funkcję taką jak:
function offsetFromToday( someDate ) {
// clear time offset because we only want to take date into account
someDate.setHours( 0 );
someDate.setMinutes( 0 );// The number of milliseconds in one day
var ONE_DAY = 1000 * 60 * 60 * 24;// Convert both dates to milliseconds
someDate = someDate.getTime();
var today = new Date().getTime();// Calculate the difference in milliseconds
var difference = Math.abs( someDate - today );// Convert back to days and return
return Math.floor( (difference/ONE_DAY) + 1 );
}

Wystarczy więc pobrać datę rozpoczęcia dzień wcześniej:
StartDate.setDate (StartDate.getDate () + 1)
lub coś w tym rodzaju, a następnie przekazać ją do tej funkcji, aby uzyskać przesunięcie, i następnie podaj to

jej
minDate
.

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się