Foros del Web » Programando para Internet » Javascript »

Validar lista campos

Estas en el tema de Validar lista campos en el foro de Javascript en Foros del Web. Hola, me he propuesto crear una función que me permita validar si los campos de un formulario están vacios o no. El caso es que ...
  #1 (permalink)  
Antiguo 18/01/2006, 11:25
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Validar lista campos

Hola, me he propuesto crear una función que me permita validar si los campos de un formulario están vacios o no. El caso es que quiero hacerla lo más estructurada posible para poderla reutilizarla con facilidad. De momento tengo lo siguiente:
Código:
function campoVacio(campo)
{
	var resultado = false;
		
	if( campo.value.replace(/ /g, '') == '' )
	{			
		campo.focus();
		campo.select();
			
		resultado = true;
	}
		
	return resultado;
}
	
function checkCamposVacios(formulario, listaCampos)
{
	var campo;
		
	for( indice = 0; indice < listaCampos.length; indice++ )
	{
		eval('campo = '+formulario+'.'+listaCampos[indice]);
			
		if( campoVacio(campo)  )
		{
			return false;
		}
	}
}

function checkCampos()
{
	resultado = true;
		
	listaCampos = new Array('Nombre', 'Edad');
		
	resultado = checkCamposVacios(document.FormName, listaCampos);
		
	return resultado;
}
Todo está muy bien pero no funciona
Creo que el error está en el eval. ¿Alquien me puede echar un cable?
  #2 (permalink)  
Antiguo 18/01/2006, 11:38
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola jerkan:

¿Cómo haces la llamada... ?

La mayoría de las veces (tal vez todas) se puede evitar el uso de "eval"...

Improvisando... usando solo el formulario como parámetro...

function valida(formulario) {
resultado = true;
for (var i = 0, total = formulario.elements.length; i < total; i ++)
resultado = resultado && (formulario.elements[i].value != "");
return resultado;
}

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 18/01/2006, 11:45
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
...

Mirando otra vez el código, creo que tu línea sería asi:

campo = formulario[listaCampos[indice]].value;

Veo que pones listaCampos como un array... pero los value...


Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 18/01/2006, 11:57
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Gracias por contestar tan rápido, Caricatos.

He intentado pornerlo así

eval('campo = formulario[listaCampos[indice]].value');

y así

'campo = formulario[listaCampos[indice]].value;

y no ha habido manera.
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 23:20.