Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/02/2012, 19:31
rcm530423
 
Fecha de Ingreso: febrero-2012
Mensajes: 2
Antigüedad: 12 años, 9 meses
Puntos: 0
Como puedo validar un campo clonado con jquery

Hola a todos he estado trantando de validar un campo dinamico con jquery pero nadamas no logro hacerlo ya me pase todo el día con esto buscando y buscando no encontre nada no se si me puedan ayudar aqui. este codigo me lo encontre navegando en la web y funciona perfecto, ahora lo que quiero hacer es poder validarlo con un el plugin maskedinput para que las horas queden validadas y no haya problema a la hora de guardarlos.
aqui el codigo de clonado que ya funciona.
Código Javascript:
Ver original
  1. $(document).ready(function() {
  2.     //ACA le asigno el evento click a cada boton de la clase bt_plus y llamo a la funcion addField
  3.         $(".bt_plus").each(function (el){
  4.             $(this).bind("click",addField);
  5.                                      });
  6.                             });
  7.  
  8.  
  9. function addField(){
  10. // ID del elemento div quitandole la palabra "div_" de delante. Pasi asi poder aumentar el número. Esta parte no es necesaria pero yo la utilizaba ya que cada campo de mi formulario tenia un autosuggest , así que dejo como seria por si a alguien le hace falta.
  11.  
  12. var clickID = parseInt($(this).parent('div').attr('id').replace('div_',''));
  13.  
  14. // Genero el nuevo numero id
  15. var newID = (clickID+1);
  16.  
  17. // Creo un clon del elemento div que contiene los campos de texto
  18. $newClone = $('#div_'+clickID).clone(true);
  19.  
  20. //Le asigno el nuevo numero id
  21. $newClone.attr("id",'div_'+newID);
  22.  
  23. //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)
  24. //$newClone.children("input").eq(0).attr("id",'materiales'+newID).val('');
  25. $newClone.children("input").eq(0)//.attr("id",'materiales'+newID).val('');
  26.  
  27. //Borro el valor del segundo campo input(este caso es el campo de cantidad)
  28. //$newClone.children("input").eq(1).val('');
  29. //$newClone.children("input").eq(1)//.val('');
  30.  
  31. //Asigno nuevo id al boton
  32. $newClone.children("input").eq(2).attr("id",newID)
  33.  
  34.  
  35. //Inserto el div clonado y modificado despues del div original
  36. $newClone.insertAfter($('#div_'+clickID));
  37.  
  38. //Cambio el signo "+" por el signo "-" y le quito el evento addfield
  39. $("#"+clickID).val('-').unbind("click",addField);
  40.  
  41. //Ahora le asigno el evento delRow para que borre la fial en caso de hacer click
  42. $("#"+clickID).bind("click",delRow);                   
  43.                        
  44. }
  45.  
  46.  
  47. function delRow() {
  48. // Funcion que destruye el elemento actual una vez echo el click
  49. $(this).parent('div').remove();
  50.  
  51. }
ahora el formulario
Código PHP:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
  5.  
  6. <meta content="jquery, forumlario dinamico, timersys, tutorial" name="keywords"/>
  7.  
  8. <title>Timersys </title>
  9. <script type="text/javascript" src="js/jquery.js"></script>
  10. <script type="text/javascript" src="js/jquery.maskedinput.js"></script>
  11. <script type="text/javascript" src="js/jquery.addfield.js"></script>
  12. <script language="javascript">
  13. //esto es lo que quiero que valide pero ya le busque y no lo consigo,
  14. //se los dejo asi para ver si me entiende lo que quiero hacer
  15. //esto lo que hace es validar las horas que no sean mayor a 24 horas
  16. //pero no se donde ponerlo para que haga la validacion de los input
  17. //clonados
  18. jQuery(function($)
  19.         {
  20.            $.mask.definitions['H']='[012]';
  21.            $.mask.definitions['N']='[012345]';
  22.            $.mask.definitions['n']='[0123456789]';
  23.            $("#iddelcampovalidar").mask("Hn:Nn:Nn");
  24.         });
  25.        
  26.         function valida(valor)
  27.         {
  28.            //que no existan elementos sin escribir
  29.            if(valor.indexOf("_") == -1)
  30.            {             
  31.               var hora = valor.split(":")[0];
  32.               if(parseInt(hora) > 23 )
  33.               {
  34.                    $("#iddelcampovalidar").val("");          
  35.               }
  36.            }
  37.         }
  38.         </script>
  39. </head>
  40. <body>
  41. <fieldset>
  42. <legend>Agregar Horarios</legend>
  43. <div id="stylized" class="myform">
  44. <form id="form" name="form" method="post" action="mostrar.php">
  45.  
  46. <div id="material_comprado"> </div>  
  47. <div id="div_1">
  48. <label>Dia
  49. <span class="small"><select name="dia[]" id="dia">
  50. <option value="lunes">Lunes</option>
  51. <option value="martes">Martes</option>
  52. <option value="miercoles">Miercoles</option>
  53. <option value="jueves">Jueves</option>
  54. <option value="viernes">Viernes</option>
  55. <option value="sabado">Sabado</option>
  56. <option value="domingo">Domingo</option>
  57. </select>
  58. Hora de Entrada:
  59. </span>
  60. </label>
  61.  
  62.     <input  type="text"  name="entrada[]" />
  63.     Hora de Salida:
  64.     <input type="text"   name="salida[]" /><input class="bt_plus" id="1" type="button" value="+" /><div class="error_form"></div>
  65. </div>
  66.  
  67.  
  68.  
  69.  
  70. <button type="submit" class="boton">Save</button>
  71. <div class="spacer"></div>
  72. </form>
  73. </div>
  74. </fieldset>
  75. </body>
  76. </html>