Foros del Web » Programando para Internet » Javascript »

Simplificar validación de varias variables

Estas en el tema de Simplificar validación de varias variables en el foro de Javascript en Foros del Web. A ver si pueden ayudarme, por ejemplo tengo el siguiente javascript : @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código javascript : Ver original function generar ( ) {   ...
  #1 (permalink)  
Antiguo 13/02/2009, 10:24
 
Fecha de Ingreso: junio-2007
Mensajes: 23
Antigüedad: 16 años, 10 meses
Puntos: 0
Pregunta Simplificar validación de varias variables

A ver si pueden ayudarme, por ejemplo tengo el siguiente javascript:

Código javascript:
Ver original
  1. function generar(){
  2.  
  3. var $nombre = document.getElementById("nombre").value;
  4. if ($nombre == '') { alert("los campos con arterisco son requeridos, debe rellenarlos");
  5. document.getElementById("nombre").focus()
  6. return (false); }
  7.  
  8. var $apellidos = document.getElementById("apellidos").value;
  9. if ($apellidos == '') { alert("los campos con arterisco son requeridos, debe rellenarlos");
  10. document.getElementById("apellidos").focus()
  11. return (false); }
  12.  
  13. var $pais = document.getElementById("pais").value;
  14. if ($pais == '') { alert("los campos con arterisco son requeridos, debe rellenarlos");
  15. document.getElementById("pais").focus()
  16. return (false); }
  17.  
  18. }

La pregunta es: Se puede poner la condición if y alerta de validación una sola vez en lugar de tener que repertirla para cada variable.

¿Es posible hacer lo mismo para el caso del foco? gracias

Última edición por antuan80; 14/02/2009 a las 08:29
  #2 (permalink)  
Antiguo 14/02/2009, 14:18
Avatar de programeitor  
Fecha de Ingreso: febrero-2005
Mensajes: 994
Antigüedad: 19 años, 2 meses
Puntos: 9
Respuesta: Simplificar validación de varias variables

¿que hace diferente cada bloque?
el nombre del campo a chequear.

¿como utilizar esa diferencia para simplificar el script?
coger solo un bloque y cambiar el nombre de campo por una variable generica.

¿y ahora que?
colocar en una matriz los nombres de campo a chequear.

¿y?
hacer un bucle con esa matriz como argumento.

¿como hacer para que solo haya un mensaje de alerta?
en una variable colocamos los campos erroneos al chequearlos. Al terminar el bucle lanzamos el alert con esos nombres.

¿como pasamos el foco al campo vacio?
en otra variable recogemos el primer campo vacio. Al terminar el bucle le damos el foco.

Código:
 
function generar()
{
var n, foc, msj="", campos=["nombre","apellidos","pais"]
for(n in campos)
    {
    if(document.getElementById(campos[n]).value=="")
        {
        foc=msj?foc:campos[n]
        msj+=campos[n]+" "
        }
    }
if(msj)
    {
    alert("los campos con arterisco son requeridos, debe rellenar:\n\n"+msj)
    document.getElementById(foc).focus()
    return false
    }
}
 
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 08:45.