Foros del Web » Programando para Internet » Javascript »

validate luego de createElement

Estas en el tema de validate luego de createElement en el foro de Javascript en Foros del Web. Hola: Con un formulario creo dinamicamente input a necesidad. Con validate de query no tengo ningún problema en lo que concierne al formulario inicial. Pero ...
  #1 (permalink)  
Antiguo 02/02/2013, 09:54
 
Fecha de Ingreso: enero-2008
Mensajes: 303
Antigüedad: 16 años, 3 meses
Puntos: 0
validate luego de createElement

Hola:
Con un formulario creo dinamicamente input a necesidad.
Con validate de query no tengo ningún problema en lo que concierne al formulario inicial.
Pero al crear nuevos input con javascript ... no veo la forma de validar los nuevos input dinámicos.
Os dejo el script por si podeís echarme una mano.
Un saludo y muchas gracias.

CREACION DE ELEMENTO:

Código:
function crear(obj) {
  icremento++;
  
  field = document.getElementById('formulario'); 
 contenedor = document.createElement('div'); 
  contenedor.id = 'div'+icremento; 
  field.appendChild(contenedor);
  
 elem_p = document.createElement('span');
    elem_p.innerHTML = 'Cantidad ';
contenedor.appendChild(elem_p); 
 
  boton = document.createElement('input'); 
  boton.type = 'text'; 
  boton.name = 'cantidad'+'['+icremento+']'; 
  boton.setAttribute("size","4"); 
  contenedor.appendChild(boton);}
VALIDACION CON QUERY:

Código:
$(function(){
	$('#form1').validate({
		rules: {
		'fecha': 'required',	
		'concepto[]': 'required',		
		'cantidad[]': { required: true, number: true },
		'precio[]': { required: true, number: true },		
		'iva[]': { required: true, minlength: 1 }
		},
		messages: {
		'fecha': 'Debes poner la fecha',	
		'concepto[]': 'Debes poner el concepto',		
		'cantidad[]': { required: 'Debes poner la cantidad', number: 'Debes ingresar un número' },
		'precio[]': { required: 'Debes poner el precio', number: 'Debes ingresar un número' },		
		'iva[]': 'Debe seleccionar el tipo de iva'
		},
		debug: true,
		/*errorElement: 'div',*/
		//errorContainer: $('#errores'),
		submitHandler: function(form){
			form.submit();

		}
	});
});
  #2 (permalink)  
Antiguo 02/02/2013, 10:42
Avatar de danny_  
Fecha de Ingreso: septiembre-2012
Mensajes: 95
Antigüedad: 11 años, 7 meses
Puntos: 4
Respuesta: validate luego de createElement

prueba con esto:


Código Javascript:
Ver original
  1. function crear(){
  2. var i=0;
  3. i++;
  4.  
  5. field = document.getElementById('formulario');
  6. contenedor = document.createElement('div');
  7. contenedor.id = 'div'+i;
  8. field.appendChild(contenedor);
  9.  
  10. elem_p = document.createElement('span');
  11. elem_p.innerHTML = 'Cantidad ';
  12. contenedor.appendChild(elem_p);
  13.  
  14. boton = document.createElement('input');
  15. boton.type = 'text';
  16. boton.name = 'cantidad'+'['+i+']';
  17. boton.setAttribute("size","4");
  18. contenedor.appendChild(boton);
  19.  
  20. }
  #3 (permalink)  
Antiguo 02/02/2013, 10:45
Avatar de danny_  
Fecha de Ingreso: septiembre-2012
Mensajes: 95
Antigüedad: 11 años, 7 meses
Puntos: 4
Respuesta: validate luego de createElement

ojo, a lo que tu llamabas increment lo he cambiado simplemente por i.
  #4 (permalink)  
Antiguo 02/02/2013, 11:07
Avatar de danny_  
Fecha de Ingreso: septiembre-2012
Mensajes: 95
Antigüedad: 11 años, 7 meses
Puntos: 4
Respuesta: validate luego de createElement

Cita:
Iniciado por danny_ Ver Mensaje
prueba con esto:


Código Javascript:
Ver original
  1. var i=0;
  2. function crear(){
  3.  
  4. i++;
  5.  
  6. field = document.getElementById('formulario');
  7. contenedor = document.createElement('div');
  8. contenedor.id = 'div'+i;
  9. field.appendChild(contenedor);
  10.  
  11. elem_p = document.createElement('span');
  12. elem_p.innerHTML = 'Cantidad ';
  13. contenedor.appendChild(elem_p);
  14.  
  15. boton = document.createElement('input');
  16. boton.type = 'text';
  17. boton.name = 'cantidad'+'['+i+']';
  18. boton.setAttribute("size","4");
  19. contenedor.appendChild(boton);
  20.  
  21. }
  #5 (permalink)  
Antiguo 02/02/2013, 11:08
 
Fecha de Ingreso: enero-2008
Mensajes: 303
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: validate luego de createElement

Gracis, pero el problema no lo tengo ahí, el funcionamiento al crear elemtos va bien.

VAlidar el formulario, con Jquery tambien.
Lo que no hace query es valadir los input creados dinámicament, sunpongo por que se ha creado fuera del html inicial y no lo reconoce.
¿Hay alguna forma de llamar a esta nueva validacion?
  #6 (permalink)  
Antiguo 02/02/2013, 11:08
Avatar de danny_  
Fecha de Ingreso: septiembre-2012
Mensajes: 95
Antigüedad: 11 años, 7 meses
Puntos: 4
Respuesta: validate luego de createElement

la última es la correcta, se ha declarar la variable de incremento fuera de la función, espero eso te ayude con la validación.

Saludos.
  #7 (permalink)  
Antiguo 02/02/2013, 11:22
 
Fecha de Ingreso: enero-2008
Mensajes: 303
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: validate luego de createElement

Sigue sin validar, gracias
  #8 (permalink)  
Antiguo 02/02/2013, 12:55
Avatar de danny_  
Fecha de Ingreso: septiembre-2012
Mensajes: 95
Antigüedad: 11 años, 7 meses
Puntos: 4
Respuesta: validate luego de createElement

A ver si este código te puede ayudar.

Código Javascript:
Ver original
  1. var i=0;
  2. function crear(){
  3.  
  4.     i++;
  5.      
  6.     field = document.getElementById('formulario');
  7.     contenedor = document.createElement('div');
  8.     contenedor.id = 'div'+i;
  9.     field.appendChild(contenedor);
  10.      
  11.     elem_p = document.createElement('span');
  12.     elem_p.innerHTML = 'Cantidad ';
  13.     contenedor.appendChild(elem_p);
  14.      
  15.     boton = document.createElement('input');
  16.     boton.type = 'text';
  17.     boton.name = 'cantidad';
  18.     boton.setAttribute("size","4");
  19.     contenedor.appendChild(boton);
  20.    
  21.     var campos=document.getElementsByTagName('input');
  22.        
  23.     for(var i=0;i<campos.length;i++){
  24.         campos[i].onblur=formValidate;
  25.     }
  26.    
  27. }
  28.  
  29.  
  30. function formValidate(){
  31.  
  32.     alert(this.value);
  33.    
  34. }


En la funcion form validate tendrás que poner la validación con expresiones regulares dependiendo de lo que quieras validar, la validación la realizará cuando pierda el foco de dicho campo creado.

Etiquetas: formulario, html, input
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:02.