2011-11-16 3 views
26

Se desidero visualizzare in linea il Datepicker dell'interfaccia JQUERY allegandolo a un DIV come $("div#someID").datepicker(), come accedere alla data scelta? Presumo che non sia legato a un INPUT quindi non verrà inviato con il modulo.Ottenere il valore da JQUERY datepicker

Credo che come follow-up, se ho bisogno di associarlo a un elemento INPUT, c'è un modo per controllare il posizionamento del datepicker rispetto all'elemento INPUT? Se volessi che il datepicker appaia sopra o sul lato dell'elemento invece che sotto, come potrei farlo?

Perdonami se questa risposta è davvero ovvia.

risposta

45

Se si desidera ottenere la data quando l'utente lo seleziona, è possibile effettuare questa operazione:

$("#datepicker").datepicker({ 
    onSelect: function() { 
     var dateObject = $(this).datepicker('getDate'); 
    } 
}); 

Non sono sicuro della seconda parte della domanda. Ma, hai provato a usare i fogli di stile e il posizionamento relativo?

+0

Grazie! Non posso credere di aver perso "getDate" in qualche modo guardando i documenti! Immagino che probabilmente dovrò andare in giro con i loro fogli di stile, ma mi innervosisco sempre con qualsiasi cosa abbia fatto qualcun altro. –

+0

questo mi fa davvero risparmiare tempo, quindi per la risposta – DEBAL

+1

come si analizza la data "" Mer Nov 08 2017 18:20:28 GMT + 0100 (W. Ora standard Europa) "'? – NineCattoRules

8

È possibile utilizzare il metodo getDate:

var d = $('div#someID').datepicker('getDate'); 

che vi darà un oggetto Date in d.

Non ci sono options for positioning popup ma si potrebbe essere in grado di fare qualcosa con CSS o l'evento beforeShow se necessario.

5

È possibile rimuovere l'attributo nome di questo input, quindi non verrà inviato.

Per accedere al valore di questa controll:

$("div#someID").datepicker("getDate") 

e la vostra può avere uno sguardo al documento http://jqueryui.com/demos/datepicker/

+1

Grazie! Non posso credere di aver perso "getDate" in qualche modo guardando i documenti! –

4
$('div#someID').datepicker({ 
    onSelect: function(dateText, inst) { alert(dateText); } 
}); 

è necessario associarlo al elemento di input solo

+0

http://stackoverflow.com/questions/662220/how-to-change-the-pop-up-position-of-the-jquery-datepicker-control spero che questo possa esserti d'aiuto – run

2

Si potrebbe fare come segue: con la convalida solo per assicurarsi che il datepicker sia associato all'elemento.

var dt; 

if ($("div#someID").is('.hasDatepicker')) { 
    dt = $("div#someID").datepicker('getDate'); 
} 
0

Per posizionare il datario accanto al campo di immissione, è possibile utilizzare il seguente codice.

$('#datepicker').datepicker({ 
    beforeShow: function(input, inst) 
    { 
     inst.dpDiv.css({marginLeft: input.offsetWidth + 'px'}); 
    } 
}); 
0

Se gli elementi selezionati non sono uno, è necessario utilizzare in questo modo:

$('[type="date"]').datepicker(); 
$('[type="date"]').change(function() { 
    var date = $(this).datepicker("getDate"); 
    console.log(date); 
});