Ho un'applicazione web abbastanza complessa a cui vorrei aggiungere un'interfaccia utente per la selezione della data.jQuery datepicker senza input
Il problema che sto incontrando è che non sono stato in grado di capire dai documenti come prendere veramente il controllo di come e quando appare il datapicker. Non ci sono elementi di forma coinvolti (e no, non ho intenzione di aggiungere un campo modulo segreto), quindi l'approccio dead-simple out-of-the-box semplicemente non funzionerà.
Spero che qualcuno possa fornire una piccola guida su un modello che mi permetta di invocare il DatePicker a livello di programmazione. Credo di sapere come utilizzare gli eventi personalizzati di datepicker per inizializzarlo e posizionarlo, e per recuperare il valore scelto quando l'utente lo abbandona. Sto solo facendo fatica a creare un'istanza di un datepicker, dal momento che non lo sto associando a un elemento.
Ecco cosa non è di lavoro:
function doThing(sCurrent, event) { // sCurrent is the current value; event is an event I'm using for positioning information only
var bIsDate = !isNaN((new Date(sCurrent)).getTime());
jQuery.datepicker('dialog',
(bIsDate ? new Date(sOriginal) : new Date()), // date
function() { console.log('user picked a date'); }, // onSelect
null, // settings (i haz none)
event // position
);
}
La ragione è che "jQuery.datepicker" non è una funzione. (Sto facendo male.)
Non sono sposato con l'approccio 'dialog' - era solo la mia ipotesi migliore per invocarne uno senza fare riferimento a un elemento del modulo.
sto usando jQuery 1.4.3 e 1.8.6 jQueryUI
Grazie per aver scavato! Ho anche fatto un po 'di sbirciare e, anche se non ho ancora funzionato, ho scoperto che il plugin genera effettivamente un INPUT nascosto quando viene chiamato il metodo "dialog", nascondendolo dietro il datepicker visibile quando è attivo.Sembra una specie di hokey, ma conferma quello che molti altri post suggeriscono: il plugin è progettato solo per il caso standard. Potrei doverlo risolvere. – Tom
Dopo un bel po 'di test, questo era l'unico modello supportato. Qualcuno ha bisogno di migliorare il datepicker in modo che sia più flessibile. Forse quel qualcuno sono io. Una battaglia alla volta, però. – Tom
Anche l'utilizzo di div/span porta a datepicker in linea (sempre visualizzate) ... Domanda senza risposta relativa a questo problema (nessuna risposta ANCORA) - http://stackoverflow.com/questions/17371859/jquery-ui-datepicker-force-non- inline-popup-mode-on-portata-o-div –