datepicker
- Questo topic ha 5 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 10 anni, 8 mesi fa da jqueryitalia.
- AutorePost
- 7 Agosto 2013 alle 15:50 #4878francescoPartecipante
Salve,
ho un campo iniziale di output data della serie: 08/08/2013 e un campo finale di selezione data con il datepicker:<input type="text" id="enddate" />
Poiché il primo campo di output (quindi non modificabile) lo valorizzo leggendo da un database, vorrei che quando vado a cliccare sul secondo campo (datepicker) mi appaia il calendario con i giorni selezionabili a partire dalla prima data (campo di output)
Cioé non devo avere la possibilità di selezionare giorni precedenti alla prima data del campo di output. So che devo agire sul parametro minDate, mi potete suggerire la soluzione?
Il relativo script del datepicker:$(function() { $("#enddate").datepicker({ dateFormat:'dd/mm/yy', minDate: 0, showOn: 'button', buttonImage: 'img/calendario_icon.gif', buttonImageOnly: true }); });
Grazie per chi mi vorrà rispondere.
Francesco8 Agosto 2013 alle 11:14 #4882jqueryitaliaAmministratoreCiao Francesco.
Devi semplicemente prelevare il valore del primo campo di output ed impostarlo come minDate.
Come si fa? Presto detto.
Supponendo che il primo campo di output abbia id “startdate” la tua funzione diventerà:$(function() { $("#enddate").datepicker({ dateFormat:'dd/mm/yy', minDate : new Date( $("#startdate").val() ), showOn: 'button', buttonImage: 'img/calendario_icon.gif', buttonImageOnly: true }); });
Buon lavoro 😉
8 Agosto 2013 alle 12:19 #4883francescoPartecipanteGrazie 1000 per la vostra risposta, ma il calendario, per la data finale, mi parte dal mese che preleva tenendo presente il giorno della data iniziale. Mi spiego meglio:
Se la data iniziale é 10/08/2013, il date picker mi parte dal giorno 08 del mese 10 anno 2013 cioé é come se la il calendario datepicker si imposta leggendo la data inizio e invertendo il mese con il giorno (da 10/08/2013 a 08/10/2013 inibendo i precedenti gorni del 08/10/2013,).
Credo che a questo punto sia necessario fornigli indicazioni sul formato data nella stringa: minDate : new Date( $(“#dal_fld”).val() ),
ho provato ma senza risultati…..come faccio?8 Agosto 2013 alle 13:51 #4885jqueryitaliaAmministratoreE’ molto più semplice di quello che pensi 😉
Infatti suppongo che tu non abbia impostato il “regional” del datePicker e per questo motivo legge le date in formato inglese, che è il formato di default.
Aggiungi la seguente riga prima di inizializzare il datepicker
$.datepicker.setDefaults($.datepicker.regional['it']);
e vedrai che tutto funzionerà in maniera corretta 😉
8 Agosto 2013 alle 14:15 #4886francescoPartecipanteScusatemi ancora ma continua a non funzionare e cioé mi crea il problema di prima del giorno con il mese (vedi 10/08/2013 iniziale me lo gira nel datepicker in 08/10/2013). Forse é necessario postare tutto mio codice:
$(function() { $.datepicker.setDefaults($.datepicker.regional['it']); $("#al").datepicker({ dateFormat:'dd/mm/yy', minDate : new Date( $("#dal_fld").val() ), monthNamesShort: ['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno','Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'], dayNamesMin: ['Do','Lu','Ma','Me','Gio','Ve','Sa'], constrainInput: true, gotoCurrent: true, showOn: 'button', changeMonth: true, buttonImage: 'img/calendario_icon.gif', buttonImageOnly: true }); });
Grazie per la vostra pazienza nel rispondermi.
10 Agosto 2013 alle 08:53 #4889jqueryitaliaAmministratoreChiedo scusa: errore mio.
In new Date() va inserita la data in formato AAAA,MM,DD ed è per questo motivo che continua l’errore.
La data iniziale va quindi “splittata”, prova così:$(function() { var myDate = $("#dal_fld").val(); piece = myDate.split('/'); day = parseInt( piece[0] ); mounth = parseInt( piece[1] ); year = parseInt( piece[2] ); $("#al").datepicker({ dateFormat:'dd/mm/yy', minDate : new Date( year, mounth - 1, day ), showOn: 'button', buttonImage: 'img/calendario_icon.gif', buttonImageOnly: true }); });
- AutorePost
- Devi essere connesso per rispondere a questo topic.