2012-11-12 19 views
6

Dzień dobry, Chciałbym dynamicznie kontrolować maxDate mojego datepicker. Na przykład. : Mam datę w moim formularzu na polu tekstowym o wartości 20/12/12.Jquery ui Datepicker maxDate dynamicznie

Próbowałem tego, ale nie działa, kalendarz wyłącza maxDate od daty, którą mam na moim polu tekstowym. Czy możesz mi pomóc z tym:

$(function() { 
    var date = new Date(); 
    var m = date.getMonth(), d = date.getDate(), y = date.getFullYear(); 
    $("#Panel2nrFecha").datepicker({ 
     minDate: new Date(y, m, d), 
     maxDate: $("#Panel2nrTextBox1").val(), 
     dateFormat: "dd/mm/y", 
     defaultDate: "+1w", 
     changeMonth: true, 
     numberOfMonths: 3 
    }); 
}); 
+0

$ (funkcja() { var data = New Data(); var m = date.getMonth() d = date.getDate(), y = date.getFullYear() ; $ ("# Panel2nrFecha") datepicker ({ minDate: nowa data (y, m, d), maxDate: $ ("# Panel2nrTextBox1"). Val(), dataFormat: "dd/mm/y" , defaultDate: "+ 1w", changeMonth: true, numberOfMonths: 3 }); }); – tonydeleon

Odpowiedz

12

Po zainicjowany swoją datepicker można zmienić maxDate opcja tak:

$("#Panel2nrFecha").datepicker('option', 'maxDate', $("#Panel2nrTextBox1").val()); 
+0

idealny i łatwy. –

1

bez zamieszczania niektóre HTML, nie jestem pewien, czy to rozwiązuje problem, ale nie spróbować tego:

$(function() { 
    var date = new Date(); 
    $("#Panel2nrFecha").datepicker({ 
     minDate: date, 
     maxDate: new Date($("#Panel2nrTextBox1").val()), 
     dateFormat: "dd/mm/y", 
     defaultDate: "+1w", 
     changeMonth: true, 
     numberOfMonths: 3 
    }); 
}); 

Zauważ, że zostały usunięte Zmienne y, m i d, a także dodano new Date() we właściwości maxDate obiektu datepicker.

4

Użyj atrybutu datepicker beforeShow ustawić minimalny i maksymalny termin, jak wskazano z tym tutorialu jQuery UI Datepicker v3.4.3 Examples - Date range Marc Grabanski i Keith Wood:

$("#Panel2nrFecha").datetimepicker({ 
    beforeShow: customRange, 
    dateFormat: "dd/mm/y", 
    defaultDate: "+1w", 
    changeMonth: true, 
    numberOfMonths: 3 
}); 

function customRange(input) { 
    return { minDate: (input.id == 'Panel2nrMinDateTextBox' ? $('#Panel2nrMinDateTextBox').datepicker('getDate') : null), 
     maxDate: (input.id == 'Panel2nrMaxDateTextBox' ? $('#Panel2nrMaxDateTextBox').datepicker('getDate') : null) 
    }; 
} 
Powiązane problemy