2011-11-16 22 views
26

Si quiero mostrar el marcador de fecha JQUERY UI en línea adjuntándolo a un DIV como $("div#someID").datepicker() - ¿cómo accedo a la fecha elegida? Supongo que si no está vinculado a un INPUT, entonces no se enviará con el formulario.Obteniendo el valor de JQUERY datepicker

Supongo que, como seguimiento, si necesito vincularlo a un elemento de ENTRADA, ¿hay alguna manera de controlar el posicionamiento del marcador de fecha relativo al elemento de ENTRADA? Si quisiera que el marcador de fecha aparezca arriba o al costado del elemento en lugar de debajo, ¿cómo lo haría?

Perdóname si esta respuesta es realmente obvia.

Respuesta

45

Si desea obtener la fecha cuando el usuario lo selecciona, puede hacerlo:

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

No estoy seguro acerca de la segunda parte de su pregunta. Pero, ¿ha intentado usar hojas de estilo y posicionamiento relativo?

+0

¡Gracias! ¡No puedo creer que de alguna manera me perdí de "getDate" cuando revisé los documentos! Me imagino que probablemente tendré que meterme con sus hojas de estilo, pero siempre me pongo nervioso al hackear cualquier cosa que alguien más haya hecho. –

+0

esto realmente me ahorra tiempo, por ejemplo, la respuesta – DEBAL

+1

cómo se analiza la fecha '" mié. 08 de noviembre de 2017 18:20:28 GMT + 0100 (hora estándar del oeste de Europa) "'? – NineCattoRules

8

Puede utilizar el método getDate:

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

que le dará un objeto Date en d.

No hay ningún options for positioning emergente pero es posible que pueda hacer algo con CSS o el evento beforeShow si es necesario.

5

Puede quitar el atributo de nombre de esta entrada, por lo que no se enviará.

Para acceder al valor de este controll:

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

y su podemos tener una mirada en el documento en http://jqueryui.com/demos/datepicker/

+1

Gracias! ¡No puedo creer que de alguna manera me perdí de "getDate" cuando revisé los documentos! –

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

debe vincular a elemento de entrada única

+0

http://stackoverflow.com/questions/662220/how-to-change-the-pop-up-position-of-the-jquery-datepicker-control Espero que esto pueda ayudarlo – run

2

Puede hacerlo de la siguiente manera - con validación solo para asegurarse de que el marcador de fechas está vinculado al elemento.

var dt; 

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

Para colocar el marcador de fecha al lado del campo de entrada, puede usar el siguiente código.

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

Si los elementos seleccionados no son uno, es necesario utilizar de esta manera:

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