Foros del Web » Programando para Internet » Javascript »

Validar listas desplegables

Estas en el tema de Validar listas desplegables en el foro de Javascript en Foros del Web. Ando buscando una buena funcion para validar todas las listas desplegables de mi formulario. GRACIAS...
  #1 (permalink)  
Antiguo 28/07/2007, 11:04
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años
Puntos: 50
Validar listas desplegables

Ando buscando una buena funcion para validar todas las listas desplegables de mi formulario.


GRACIAS
  #2 (permalink)  
Antiguo 28/07/2007, 15:50
 
Fecha de Ingreso: enero-2007
Mensajes: 405
Antigüedad: 17 años, 4 meses
Puntos: 3
Re: Validar listas desplegables

La lista tiene alguna opcion por defecto ?? es decir...

<option value="0">Elige...</option>

Si lo tienes asi, puedes acceder al objeto de la lista...

Código PHP:
lista document.getElementById("id de la lista");
indice lista.selectedIndex;
valor lista.options[indice].value//Si es 0 es la opcion por defecto
if(valor == 0){
             
ERROR
}
else{
             
OK!!!

Saludos
  #3 (permalink)  
Antiguo 28/07/2007, 22:35
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años
Puntos: 50
Re: Validar listas desplegables

gracias pero no existe una sola funcion que me valide todas las listas del formulario a la vez
???????
  #4 (permalink)  
Antiguo 28/07/2007, 22:47
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años
Puntos: 50
Re: Validar listas desplegables

gracias pero no existe una sola funcion que me valide todas las listas del formulario a la vez
???????
  #5 (permalink)  
Antiguo 29/07/2007, 02:23
 
Fecha de Ingreso: enero-2006
Mensajes: 293
Antigüedad: 18 años, 3 meses
Puntos: 4
Re: Validar listas desplegables

A todos tus listas desplegables dales valor en su atributo id ascendentemente:
Cita:
<select name="nom1" id="1">
Ahora, basándonos en el código de wigglyUtrera:

Código:
function valida(){
   var i;
   for (i=1;i<=2;i++) { 
      lista = document.getElementById(i); 
      indice = lista.selectedIndex; 
      valor = lista.options[indice].value; //Si es 0 es la opcion por defecto 
      if(valor == 0){ 
         alert("ERROR")
         return false;
      } 
   }
   return true;
}
saludos
  #6 (permalink)  
Antiguo 29/07/2007, 04:13
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Validar listas desplegables

Hola:

Sabiendo que las listas desplegables (como las llamas) son las etiquetas select, puedes recorrer los selct dependientes del form, y consultar su value (suponiendo que la opción por defecto tiene como value la cadena vacía)

function validaListas(f) {
losSelect = f.getElementsByTagName("select");
valida = true;
for (var i = 0, total = losSelect.length; i < total; i ++) valida = (valida && losSelect[i].value != "");
if (!valida) alert("controle los campos select");
return valida;
}

Y se llama como cualquier validación:
<form onsubmit="return validaListas(this)"...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 30/07/2007, 12:35
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años
Puntos: 50
Re: Validar listas desplegables

Estuve probando la solución que me da caricatos pero lo que pasa es que ya tengo un evento onsubmit que es el que llama la funcion que valida campos obligatorios y numericos "Estoy usando la que genera dreamweaver" como hago para meterle el otro onsubmit?

Asi esta

Código:
onsubmit="MM_validateForm('EstPriApellido','','R','EstPriNombre','','R','EstNumDocumento','','RisNum','EstDireccion','','R','EstBarrio','','R','EstTelefono','','RisNum','EstPaisNacimiento','','R');return document.MM_returnValue"

¿como le meto el?

return validaListas(this);
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:40.