Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/12/2014, 10:23
slikp
 
Fecha de Ingreso: marzo-2013
Mensajes: 32
Antigüedad: 11 años, 1 mes
Puntos: 0
Jquery visualizar un calendario en un input clonado

- Buenas a todos espero puedan ayudarme ya tengo un par de varias horas con esto y nada que encuentro la solucion, veran a raiz de que el atributo Date de html5 no me sirve en Mozilla Firefox busque otra alternativa en Google y me encontre con el Calendario Datepicker lo probe por separado de mi proyecto y de una vez me funciono lo cambie a español y todo fino todo bello, bien lo quise integrar a mi proyecto y hasta cierto punto pense que estaba bien hasta que me di cuenta que si añadia otro campo en mi documento el calendario en el segundo elemento clonado no funciona, para ser mas claro yo tengo el siguiente formulario.

Código HTML:
Ver original
  1. <form method="post" name="up_form" class="formulario">
  2.         <input type="hidden" name="insertar">
  3.       <table id="up_form"><br>     
  4.         <thead>
  5.             <tr>
  6.                 <th>Clasificación</th>
  7.                 <th>Descripción Documento</th>
  8.                 <th>Fecha del Documento</th>
  9.                 <th>Fecha de Expiración</th>
  10.                 <th>Adjuntar Archivo</th>
  11.             </tr>        
  12.         </thead>
  13.         <tbody>
  14.             <tr class="lire">
  15.                 <td>
  16.                     <select id="taxonomia" name="cod_clasificacion">
  17.                         <option value="">SELECCIONE UNA OPCION VALIDA</option>
  18.                         <option value="0">EXPEDIENTE MEDICO</option>
  19.                         <option value="1">EXPEDIENTE LABORAL</option>
  20.                         <option value="2">EXPEDIENTE SEGURIDAD INDUSTRIAL</option>
  21.                     </select>
  22.                 </td>
  23.                 <td>
  24.                     <textarea id="describe" name="descripcion" required /></textarea>
  25.                 </td>
  26.                 <td>
  27.                     <input type="text" class="datepicke" name="fecha_doc" required />
  28.                 </td>
  29.                 <td>
  30.                     <input type="text" class="datepicker" name="fecha_exp" required />
  31.                 </td>
  32.                 <td>
  33.                     <div class='input-file'>
  34.                       <input type="file" name="archivo[]">
  35.                       <input type="hidden" name="codigo" value="<?php echo $fila["cod_emp"]; ?>">
  36.                         Seleccionar archivo
  37.                       <div class="files">...</div>
  38.                   </div>
  39.                 </td>
  40.             </tr>
  41.         </tbody>   
  42.       </table>
  43.         <td>
  44.             <a href="#" id="btn-up" class="anex-up"> Anexar Otro Archivo </a>
  45.             <input id="btn-up" class="sub" type="submit" value="Cargar Documentos">
  46.         </td><br><br>
  47.     </form>

- Eso me da la siguiente interfaz.


- Si hago un click en cualquier de los dos input de Fecha del Documento y Fecha de Expiracion me sale el siguiente calendario.

.

- Ahora bien si yo hago un click en Añadir otro Archivo la fila de arriba se clona y se anexa de bajo, hice 2 click por lo tanto obtuve lo siguiente.

.

- Ok ahora el problema si yo doy click en los inputs CLONADOS de Fecha del Documento y Fecha de Expiracion no "Hace nada" no se muestran los calendario.

- Con este codigo hago la clonacion de filas.
Código Javascript:
Ver original
  1. $(document).ready(function() {
  2.     $(document).on('change', 'input:file', function(){  // NUEVA LINEA
  3.        if($(this).val())
  4.        {
  5.          // Si tiene valor, se muestra en el class .files
  6.          $(this).parent().find(".files").html($(this).val().replace("C:\\fakepath\\", ""));
  7.         }else{
  8.          // Si no tiene valor, se muestran los puntos ...
  9.          $(this).parent().find(".files").html("...");
  10.         }
  11.     });
  12.  
  13.  
  14.     $(document).on("click",".anex-up",function() {
  15.        $("#up_form tbody tr:eq(0)").clone().appendTo("#up_form tbody").append('<td class="eliminar"><div id="eliminar">x</div></td>');
  16.         // (Se selecciona la ultima fila agregada, y se modifica el valor html del elemento con la clase 'files')
  17.         $("#up_form tbody tr:eq(-1)").find(".files").html("..."); // NUEVA LINEA
  18.      
  19.     });
  20.      
  21.     $(document).on("click",".eliminar",function(){
  22.         var parent = $(this).parents().get(0);
  23.         $(parent).remove();
  24.     });
  25. });

- Y para usar el Datepicker uso lo siguiente, esto lo tengo en el html donde tengo el formulario.
Código HTML:
Ver original
  1. <script src="script/jquery-2.1.1.min.js"></script>
  2. <script src="script/jquery-ui.js"></script>
  3.       <script>
  4.           $(document).ready(function() {
  5.             $( ".datepicker" ).datepicker();
  6.             $( ".datepicke" ).datepicker();
  7.           });
  8.       </script>

- Alguna idea? espero puedan ayudarme un Saludo.