Foros del Web » Programando para Internet » Javascript »

Validar varios select

Estas en el tema de Validar varios select en el foro de Javascript en Foros del Web. Hola a todos, Tengo varios selects(<select...></select>) con el mismo nombre. La idea es: 1) validarlos en javascript para q no seleccionen los mismos elementos y ...
  #1 (permalink)  
Antiguo 22/05/2005, 03:18
hmv
 
Fecha de Ingreso: abril-2005
Mensajes: 323
Antigüedad: 19 años
Puntos: 0
Busqueda Validar varios select

Hola a todos,
Tengo varios selects(<select...></select>) con el mismo nombre. La idea es:
1) validarlos en javascript para q no seleccionen los mismos elementos
y 2) recorrerlos usando un FOR en PHP para q me los imprima los elementos seleccionados

Y lo q si me sale bien es la 2). El 1), No se como hacerlo
Aqui les doy el codigo q estoy usando.
Código PHP:
<? 
if (isset($_POST['nombre'])){ 
foreach (
$_POST['nombre'] as $value){echo $value."<br>";} 

?> 

<form action="select.php" method="post"> 

<select name="nombre[]"> 
<option value="1">habitación</option> 
<option value="2">Sala</option> 
<option value="3">Baño</option> 
</select> 

<select name="nombre[]"> 
<option value="1">habitación</option> 
<option value="2">Sala</option> 
<option value="3">Baño</option> 
</select> 

<select name="nombre[]"> 
<option value="1">habitación</option> 
<option value="2">Sala</option> 
<option value="3">Baño</option> 
</select> 

<input type="submit" value="Enviar"> 

</form>
Gracias por sus respuestas.
  #2 (permalink)  
Antiguo 22/05/2005, 03:29
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola hmv

En este mensaje se preguntó lo mismo:

http://www.forosdelweb.com/showthrea...ar#post1091213

Saludos,
  #3 (permalink)  
Antiguo 22/05/2005, 03:44
hmv
 
Fecha de Ingreso: abril-2005
Mensajes: 323
Antigüedad: 19 años
Puntos: 0
Si, pero lo q yo quiero es validar select por grupos, es decir en una parte quiero validar 5 select, por ejemplo. en otra parte del form quiero validar otros 6 select.

Pero este codigo me valida todos los SELECT del form y eso no quiero porque hay grupos de select q si pueden escoger los mismos elementos

Código PHP:
function validar(frm) { 
  
sele frm.getElementsByTagName('select'); 
  for(
i=0ele=sele[i]; i++) 
    for(
j=i+1sel=sele[j]; j++) 
      if(
ele.selectedIndex == sel.selectedIndex) { 
        
alert('No vale repetir'); 
        return 
false
      } 

  #4 (permalink)  
Antiguo 22/05/2005, 08:05
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola de nuevo.

Esto no lo he probado, pero espero que te sirva:

for(j=i+1; sel=sele[j]; j++)
if(ele.name.indexOf('nombre')!=-1 && sel.name.indexOf('nombre')!=-1)
if(ele.selectedIndex == sel.selectedIndex) {

Saludos,
  #5 (permalink)  
Antiguo 22/05/2005, 08:48
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Rehola.

Quizás sea más fácil meter cada grupo de select en un div:

<div id="nombre">
<select name="nombre[]">
...
</div>

y utilizar esta función:
Código PHP:
function validar(sele) {
  
obj=document.getElementById(sele);
  
sele obj.getElementsByTagName('select');
    for(
i=0ele=sele[i]; i++)
      for(
j=i+1sel=sele[j]; j++)
        if(
ele.selectedIndex == sel.selectedIndex) {
          
alert('No vale repetir');
          return 
false;
        } 

La llamas con: validar('nombre')

Saludos,
  #6 (permalink)  
Antiguo 23/05/2005, 01:40
hmv
 
Fecha de Ingreso: abril-2005
Mensajes: 323
Antigüedad: 19 años
Puntos: 0
Funciona, gracias
Es justo lo q buscaba, no sabia q los <DIV> tambien se podian usar de esa manera.

Gracias, adios
  #7 (permalink)  
Antiguo 23/05/2005, 10:46
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Me alegro de que te haya servido. Hasta pronto
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 18:13.