Ver Mensaje Individual
  #8 (permalink)  
Antiguo 09/12/2010, 13:02
Avatar de Dundee
Dundee
 
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 22 años, 6 meses
Puntos: 8
Respuesta: Calendarios Jquery

Cita:
Iniciado por TIaGoX Ver Mensaje
Podrías hacerte una función para que cada vez que agregas una linea para carga de datos, también le asignes el datepicker en el mismo código, luego de insertar el HTML en la pagina.

Saludos.
Este es el código que tengo:

Código:
function addField(){

var clickID = parseInt($(this).parent('div').attr('id').replace('div_',''));

// Genero el nuevo numero id
var newID = (clickID+1);

// Creo un clon del elemento div que contiene los campos de texto
$newClone = $('#div_'+clickID).clone(true);

//Le asigno el nuevo numero id
$newClone.attr("id",'div_'+newID);

//Asigno nuevo id al primer campo input dentro del div y le borro cualquier valor que tenga asi no copia lo ultimo que hayas escrito.(igual que antes no es necesario tener un id)
$newClone.children("input").eq(0).attr("id","nombre"+newID).val('');
$newClone.children("input").eq(2).attr("id","fecha"+newID).val('');

//Borro el valor del segundo campo input(este caso es el campo de cantidad)
$newClone.children("input").eq(1).val('');
$newClone.children("input").eq(2).val('');

//Asigno nuevo id al boton
$newClone.children("input").eq(3).attr("id",newID)

//Inserto el div clonado y modificado despues del div original
$newClone.insertAfter($('#div_'+clickID));

//Cambio el signo "+" por el signo "-" y le quito el evento addfield
$("#"+clickID).val('-').unbind("click",addField);

//Ahora le asigno el evento delRow para que borre la fial en caso de hacer click
$("#"+clickID).bind("click",delRow);	


$(".fecha").datepicker({

   showOn: 'both',
   buttonImage: 'fns/calendar.png',
   buttonImageOnly: true,
   changeYear: true,
   numberOfMonths: 2,
  /* onSelect: function(textoFecha, objDatepicker){
      $("#mensaje").html("<p>Has seleccionado: " + textoFecha + "</p>");
   }*/
	}); 
  
}
Y también cargo el datepicker al cargar toda la página al inicio (para que este disponible para el primer campo generado)

Código:
$(document).ready(function() {
	
	$(".fecha").datepicker({

   showOn: 'both',
   buttonImage: 'fns/calendar.png',
   buttonImageOnly: true,
   changeYear: true,
   numberOfMonths: 2,
  /* onSelect: function(textoFecha, objDatepicker){
      $("#mensaje").html("<p>Has seleccionado: " + textoFecha + "</p>");
   }*/
	}); 
});
Curiosamente genera el iconito del calendario en todos los campos dinámicos (y el primero), pero cuando cambio las fechas solamente los cambios se producen en el primer campo. MIRAR IMAGEN



Nota:sin el readonly sucede lo mismo (ya lo he probado (:: )

Gracias por la ayuda
__________________
Videotutoriales de Drupal