2013-05-22 11 views
33

Utilizzo di jquery e del Datepicker Bootstrap, come posso ottenere il nuovo valore di data che ho selezionato utilizzando Bootstrap Datepicker? FYI, sto usando Rails 3 e Coffescript.Come ottenere il valore della data selezionato mentre si utilizza Bootstrap Datepicker?

Ho creato la datapicker utilizzando:

<input id="startdate" class="span2 datepicker" type="text" value="" name="startdate" default="2013-05-21" data-date="2013-05-21" data-behavior="datepicker"> 
<%= submit_tag 'Get Data using date', :id => 'get_data' %> 

$(".datepicker").datepicker 
     endDate: new Date 
     format: "yyyy-mm-dd" 
     autoclose: true 
     minViewMode: 1 
     todayBtn: "linked" 

Quando un utente fa clic su "Get dati utilizzando data" pulsante accanto ad essa, io utilizzare jQuery per ottenere il nuovo valore data fissata dal datepicker, impedire al modulo di inviare ed eseguire una richiesta Ajax utilizzando tale valore di data. Tutto l'ajax funziona bene, tranne che per ottenere il nuovo valore di data corretto. Ho provato entrambi i seguenti e non mi dà la nuova data, restituisce solo i valori predefiniti che ho impostato inizialmente.

sd1 = $('#startdate').attr('value') 
console.log sd1 

sd2 = $('#startdate').attr('data-date')) 
console.log sd2 

mi sento veramente stupido in questo momento, ma non riesco a trovare il modo di ottenere il nuovo valore data fissata dalla datepicker bootstrap.

risposta

40

Si può provare questo

$('#startdate').val() 

o

$('#startdate').data('date') 
+0

Per me, il primo $ ('# startdate'). Val() ha funzionato perfettamente. Grazie – Ryan

+0

Potresti dirmi per favore quale componente Datepicker stai usando? Non ce n'è uno ufficiale e un sacco di party in 3D, è per questo che lo sto chiedendo. – momijigari

+0

ringrazio molto sir..i state cercando da 6 ore ... ora ho ottenuto questo lavoro ... vi ringrazio molto signore ... e yess grazie al mio Allah ... –

8

In generale,

$('#startdate').data('date') 

è migliore perché

$('#startdate').val() 

non funzionare se si dispone di un datepicker "inline"

3

questo funziona con me per Inline datepicker (e l'altro)

$('#startdate').data('datepicker').date 
43

Per datepicker bootstrap è possibile utilizzare:

$("#inputWithDatePicer").data('datepicker').getFormattedDate('yyyy-mm-dd'); 
+0

Molto utile! Quando datepicker ha più date, la data restituita negli eventi è sempre la prima nella sequenza, indipendentemente dalla data selezionata nel calendario. L'oggetto 'data' ha sempre la data effettiva cliccata. – TombMedia

+0

Questo ha funzionato per me. Molte grazie! –

24

Bootstrap datepicker (il primo risultato della ricerca datepickcer di bootstrap) ha un metodo per ottenere la data selezionata.
http://bootstrap-datepicker.readthedocs.org/en/release/methods.html#getdate

getDate:
restituisce un oggetto data localizzato che rappresenta l'oggetto data interna del primo DatePicker nella selezione.
Per i raccoglitori multidate, restituisce la data più recente selezionata.

$('.datepicker').datepicker("getDate") 

o

$('.datepicker').datepicker("getDate").valueOf() 
+3

Perché l'autore non fornisce un esempio ?! sono stato alla ricerca di questo metodo stupido per troppo tempo. E perché questa non è la risposta ?! – cauchy

1

Prova questa utilizzando HTML come qui:

var myDate = window.document.getElementById("startdate").value; 
+0

Ti ho downvoted per errore. Puoi modificare la tua risposta in modo da poter correggere l'upvot? Mi dispiace per quello – Maxime

0

ho provato con le risposte di cui sopra, ma non ha funzionato per me; Quindi, come riferito da user3475960, ho usato $('#startdate').html() che mi ha dato il testo html, quindi l'ho usato come necessario ... Forse qualcuno ne farà uso ..

2

Se già hanno un numero di date già evidenziato e vuole determinare quale data dell'ultima cliccato allora è necessario il seguente:

$('#startdate').data('datepicker').viewDate 

viewDate restituisce un oggetto JavaScript Date in modo da Avrò bisogno di gestirlo di conseguenza.

Problemi correlati