2012-11-12 16 views
6

Good Morning, Mi piacerebbe controllare dinamicamente il maxDate del mio datepicker. Per esempio : Ho una data sul mio modulo su una casella di testo con valore 20/12/12.Jquery ui Datepicker maxDate dinamicamente

Ho provato questo, ma non funziona, il calendario sta disabilitando il maxDate dalla data che ho ottenuto sulla mia casella di testo. Potete per favore aiutarmi con questo:

$(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

$ (function() {var date = new date(); var m = Date.getMonth(), d = Date.getDate(), y = Date.getFullYear() $ ("# Panel2nrFecha"). Datepicker ({ minDate: nuovo Data (y, m, d), maxDate: $ ("# Panel2nrTextBox1"). Val(), dateFormat: "gg/mm/a" , defaultDate: "+ 1w", changeMonth: true, numberOfMonths: 3 }); }); – tonydeleon

risposta

12

Dopo aver inizializzato il datepicker, è possibile modificare la maxDate opzione in questo modo:

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

perfetto e facile. –

1

senza distacco alcuni HTML, non sono sicuro se questo risolve il problema, ma lo provate questo:

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

Notate che ho rimosso il y, m e d variabili e anche aggiunto new Date() sulla proprietà maxDate di DatePicker.

4

utilizzare l'attributo beforeShow di datepicker per impostare il minimo e data massima, come descritto da questo tutorial jQuery UI Datepicker v3.4.3 Examples - Date range da Marc Grabanski e 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) 
    }; 
} 
Problemi correlati