Foros del Web » Programando para Internet » Javascript »

Validar select multiple

Estas en el tema de Validar select multiple en el foro de Javascript en Foros del Web. Hola. Tengo el siguiente problema: Quiero validar un select múltiple que tengo en un formulario, antes de que el usuario lo envíe. Pongo el código: ...
  #1 (permalink)  
Antiguo 12/03/2010, 13:43
Avatar de venom_mau  
Fecha de Ingreso: julio-2009
Mensajes: 152
Antigüedad: 14 años, 9 meses
Puntos: 2
Pregunta Validar select multiple

Hola.

Tengo el siguiente problema:
Quiero validar un select múltiple que tengo en un formulario, antes de que el usuario lo envíe.
Pongo el código:
Código:
<form name="cuestionario" method="post" action="guarda.php" >
...
<select name='respuesta[]' id='inputs'>
<option value=' 0 '>Selecciona una opcion</option>
<option value=' 1 '>Selecciona una opcion</option>
<option value=' 2 '>Selecciona una opcion</option>
<option value=' 3 '>Selecciona una opcion</option>
<option value=' 4 '>Selecciona una opcion</option>
<option value=' 5 '>Selecciona una opcion</option>
</select>
Ya intenté esto:
Código:
function verifica(){
	var contr = new Array();
	contr =document.cuestionario.getElementsByname('respuesta[]').value;
	for (var i=0;i<count(contr);i++) 
		{ 
			if(contr==0){
			alert("Responde bien");
			return false;
			}
		} 

}
Que es un archivo js que llamo en mi página:
Código:
<script type="text/javascript" src="pregunta.js"></script>
Creo que es error de sintaxis, pero no sé, como ando con otros problemillas gracias a fpdf, ya no sé ni lo que escribo

Gracias por su tiempo y respuestas.

Saludos :)
  #2 (permalink)  
Antiguo 12/03/2010, 20:41
Avatar de Fernand0  
Fecha de Ingreso: septiembre-2005
Ubicación: Buenos Aires
Mensajes: 610
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: Validar select multiple

Código Javascript:
Ver original
  1. function verifica(){
  2.     var contr = new Array();
  3.     contr=parseFloat(document.getElementById('inputs').value);
  4.     for (var i=0; i<contr; ++i)
  5.         {
  6.             if(contr==0){
  7.             alert("Responde bien");
  8.             return false;
  9.             }
  10.         }
  11.  
  12. }

fijate si asi anda, no es la mejor forma de hacerlo tal vez, pero es una forma muy comoda
recorda que los IDs en las etiquetas tienen que ser unicos, si le pones a varias etiquetas <input> el mismo ID vas a tener problemas con el ejemplo que te di

saludos
  #3 (permalink)  
Antiguo 12/03/2010, 23:19
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Validar select multiple

Hola:

En este tuto: El abc de los formularios puse como validar que al menos haya uno seleccionado, simplemente es recorrerlo y contar los que están checked... aunque supongo que bastaría con que tuviera contenido el propio value (aunque solo se obtendría el primer valor)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 16/03/2010, 13:39
Avatar de venom_mau  
Fecha de Ingreso: julio-2009
Mensajes: 152
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: Validar select multiple

Pues gracias Fernand0 y caricatos, por sus respuestas.

Ya ví que el error esta en el id, pero no puedo hacer diferente ese valor puesto que lo uso para darle estilo.

Hice esto:
Código:
function verifica(){
indice = document.getElementById("inputs").selectedIndex;
if( indice == null || indice == 0 ) {
alert("Debe de especificar la respuesta");
  return false;
}

}
Algo parecido a lo que me mostraron.
Pero ahora lo necesito para varios selects, es decir mas de uno de estos:
Código:
<select name='respuesta[]' id='inputs'>
<option value=' 0 '>Selecciona una opcion</option>
<option value=' 1 '>Selecciona una opcion</option>
<option value=' 2 '>Selecciona una opcion</option>
<option value=' 3 '>Selecciona una opcion</option>
<option value=' 4 '>Selecciona una opcion</option>
<option value=' 5 '>Selecciona una opcion</option>
</select>
Seguiré buscando e intentando posibles soluciones.

Saludos :)
  #5 (permalink)  
Antiguo 17/03/2010, 09:10
Avatar de venom_mau  
Fecha de Ingreso: julio-2009
Mensajes: 152
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: Validar select multiple

Hola.

Intenté esto:
Código js
Código:
<script> 
  
 
function verifica(){

   indice = document.getElementById("inputs").selectedIndex;
    if( indice == null || indice == 0 ) 
      {
       alert("Debe Elegir la respuesta a la pregunta 1");
       return false;
      }
}


function verifica2(){

   indice = document.getElementById("inputs2").selectedIndex;
    if( indice == null || indice == 0 ) 
      {
       alert("Debe Elegir la respuesta a la pregunta 2");
       return false;
      }
}




  </script>
Código de la página:

Código:
<form name="cues_al" method="post"  onSubmit="verifica(), verifica2();">

<select name="respuesta[]" id="inputs">
  <option value="0">Elige una opcion</option>
  <option value="1">Nunca</option>
  <option value="2">Casi Nunca</option>
  <option value="3">Algunas Veces</option>
  <option value="4">Casi siempre</option>
  <option value="5">Siempre</option>
</select>

<select name="respuesta[]" id="inputs2">
  <option value="0">Elige una opcion</option>
  <option value="1">Nunca</option>
  <option value="2">Casi Nunca</option>
  <option value="3">Algunas Veces</option>
  <option value="4">Casi siempre</option>
  <option value="5">Siempre</option>
</select>
Ahora el detalle esta en que si tengo seleccionado un valor en el primer select y me envía el alert de que falta el otro, me borra lo que tenía seleccionado...
Saben de algún método que almacene el valor o valores que ya esten selccionados, aunque se ejecute el script anterior?

Gracias :)

Etiquetas: select
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 07:25.