Foros del Web » Programando para Internet » Javascript »

Validar que se ha elegido una opción de un select como mínimo

Estas en el tema de Validar que se ha elegido una opción de un select como mínimo en el foro de Javascript en Foros del Web. Hola,tengo un select multiple en un formulario: <select name="elementos[]" size="5" multiple> </select> Y necesito poder comprobar q se ha seleccionado como minimo un elemento de ...
  #1 (permalink)  
Antiguo 30/07/2003, 11:11
 
Fecha de Ingreso: julio-2003
Mensajes: 463
Antigüedad: 20 años, 9 meses
Puntos: 0
Validar que se ha elegido una opción de un select como mínimo

Hola,tengo un select multiple en un formulario:

<select name="elementos[]" size="5" multiple>
</select>


Y necesito poder comprobar q se ha seleccionado como minimo un elemento de ese select para poder pasar a la siguiente pantalla.

En el evento onSubmit="funcion(this)", le envio el formulario a la funcion para validarlo, intento acceder a las propiedades del verctor elementos , pero me dice q no esta definido.


Alguien me puede hechar una mano??

Gracias y un saludo.

Última edición por dominguez; 30/07/2003 a las 14:03
  #2 (permalink)  
Antiguo 30/07/2003, 14:02
 
Fecha de Ingreso: julio-2003
Mensajes: 463
Antigüedad: 20 años, 9 meses
Puntos: 0
Es q no sé que puede pasar, porque estoy accediendo a la propiedad que me indica si se ha elegido algo o no:


function CompruebaDatos(formulario)
{
if(formulario.elementos.selectedIndex!=-1)
return true;
else
{
msgError('Debe seleccionar al menos un elemento')
return false;
}
}

Pero me dice que articulo.selectedIndex no está definida, no sé sie stoy haciendo algo mal.


Un saludo.
  #3 (permalink)  
Antiguo 30/07/2003, 16:00
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Hola dominguez.

Si te dice que articulo.selectedIndex no está definido, yo buscaría a ver si el nombre del tag form, y el nombre del tag select estan bien escritos.

Sin embargo, una manera alternativa de saber si hay al menos un seleccionado es usando la propiedad value, fíjate en este ejemplo:

Código PHP:
<html>
 <
head>
  <
script language="JavaScript">
   function 
valida(){
    if (
document.frm.sel.value == "")
     
alert("Error");
    else
     
document.frm.submit();
   }
  
</script>
 </head>
 <body>
  <form name="frm">
   <select multiple name="sel">
    <option value="1">Uno</option>
    <option value="2">Dos</option>
    <option value="3">Tres</option>
    <option value="4">Cuatro</option>
    <option value="5">Cinco</option>
   </select>
   <input type="button" name="btn" value="Enviar" onclick="valida()">
  </form>
 </body>
</html> 
Saludos.
  #4 (permalink)  
Antiguo 30/07/2003, 16:08
 
Fecha de Ingreso: julio-2003
Mensajes: 463
Antigüedad: 20 años, 9 meses
Puntos: 0
Hola, creo que el problema está en que el nombre del select es un array:

<select name= "elementos[]" size="5" multiple>
</select>

Y parece que no lo reconoce, no sé. He comprobado que todo está bien escrito.


Gracias por tu interés y un saludo.
  #5 (permalink)  
Antiguo 30/07/2003, 16:21
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Bueno, podrías agregar al select un id y manipularlo usando getElementById().

En lugar de poner:
document.frm.sel.value == ""

Pones:
document.getElementById("idDelTag").value == ""

Saludos.
  #6 (permalink)  
Antiguo 30/07/2003, 16:34
 
Fecha de Ingreso: julio-2003
Mensajes: 463
Antigüedad: 20 años, 9 meses
Puntos: 0
Funciona a la perfección, gracias.

Un saludo.
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 05:18.