que only hasdatepicker configurar calendarios jquery jquery-ui datepicker jquery-ui-datepicker

only - jQuery Datepicker-Defina automáticamente altField para todos los datapickers



jquery ui only datepicker (3)

Todos mis marcadores de fecha tienen un campo oculto generado automáticamente que tiene la misma ID que la entrada del selector de fecha, pero con un guion bajo adjunto.

<div class="datepicker"> <input id="MyField1" type="text" value="" /> <input id="_MyField1" type="hidden" value="" /> </div> <div class="datepicker"> <input id="MyField2" type="text" value="" /> <input id="_MyField2" type="hidden" value="" /> </div>

Y luego cualquier campo que tenga datepicker se convierte en un datepicker.

$(''.datepicker input'').datepicker({ altFormat: ''yy-mm-dd'', changeMonth: true, constrainInput: true, dateFormat: ''dd/mm/y'', minDate: ''+0d'', numberOfMonths: 2 });

¿Pero cómo puedo también configurarlo automáticamente para configurar la opción altField para cada uno?

Esto no funciona También intenté hacer la tarea en las opciones originales, pero eso tampoco funciona.

$(''.datepicker input'').each(function() { var altField = ''_'' + $(this).prop(''id''); $(this).datepicker(''option'', ''altField'', altField); });


La opción altField toma un selector, un objeto jQuery o un elemento, no un atributo id .

Intente especificar un selector de id .

$(this).datepicker("option", "altField", "#_" + $(this).prop("id"));

O, alternativamente, guardando una llamada a $() y una llamada a prop() :

$(this).datepicker("option", "altField", "#_" + this.id);


Prueba esto:

$(''.datepicker input'').each(function() { var altField = ''#_'' + $(this).prop(''id''); $(this).datepicker(''option'', ''altField'', altField); });


jQuery UI Datapicker 1.9, utilizando altField, opciones de altFormat y método interno de anulación

Clonar campo para almacenar el valor real en formato de base de datos "aa-mm-dd", y usar el campo principal para mostrar el valor formateado ("dd-mm-aa" en este ejemplo):

$(function() { var _connectDatepicker = $.datepicker._connectDatepicker; $.datepicker._connectDatepicker = function(target, inst) { var $target = $(target); var $altField = $target.clone(false).appendTo($target.parent()).hide(); inst.settings.altField = $altField; inst.settings.dateFormat = inst.settings.altFormat = "yy-mm-dd"; _connectDatepicker.call(this, target, inst); $target.removeAttr("name").datepicker( "option", "dateFormat", "dd-mm-yy"); }; });