Foros del Web » Programando para Internet » Javascript »

Comprobacion de valores de campos select

Estas en el tema de Comprobacion de valores de campos select en el foro de Javascript en Foros del Web. Hola a todos, tengo un formulario parecido a este (excluyo código irrelevante): @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código HTML: Ver original < form name = "entrcadetes" action = ...
  #1 (permalink)  
Antiguo 08/05/2011, 07:40
3nr1c
Invitado
 
Mensajes: n/a
Puntos:
Información Comprobacion de valores de campos select

Hola a todos, tengo un formulario parecido a este (excluyo código irrelevante):

Código HTML:
Ver original
  1. <form name="entrcadetes" action="set_entrenos.php" method="post" />
  2.  
  3. <select name="cadetesdia1" onChange="comprob()"/>
  4. <option value="1">Lunes</option>
  5. <option value="2">Martes</option>
  6. <option value="3">Miércoles</option>
  7. </select> <br/>
  8.  
  9. <select name="cadetesdia2" onChange="comprob()"/>
  10. <option value="2">Martes</option>
  11. <option value="3">Miércoles</option>
  12. <option value="4">Jueves</option>
  13. </select> <br/>
  14.  
  15. <select name="cadetesdia3" onChange="comprob()"/>
  16. <option value="3">Miércoles</option>
  17. <option value="4">Jueves</option>
  18. <option value="5">Viernes</option>
  19. </select> <br/>
  20.  
  21. <select name="cadetesdia4" onChange="comprob()"/>
  22. <option value="4">Jueves</option>
  23. <option value="5">Viernes</option>
  24. <option value="6">Sábado</option>
  25. </select> <br/>
  26.  
  27. <select name="cadetesdia5" onChange="comprob()"/>
  28. <option value="5">Viernes</option>
  29. <option value="6">Sábado</option>
  30. <option value="7">Domingo</option>
  31. </select> <br/>
  32.  
  33. <input type="submit" value="Actualiza!" name="enviar"/>
  34. </form>

La cuestión es, que si os fijáis los select tienen varias posibilidades de coincidir en valores, cosa que quiero evitar. Es por esto que tengo este código js:

Código Javascript:
Ver original
  1. function comprob(){
  2.     for(i=1;i<5;i++){
  3.         ic = document.entrcadetes.cadetesdia+i.value
  4.         for(e=1;e<5;e++){
  5.             ec = document.entrcadetes.cadetesdia+e.value
  6.             if(ic==ec){
  7.                 document.entrcadetes.enviar.style.disabled = "true";
  8.             }
  9.         }
  10.     }
  11. }

Aunque si cambio el valor de cualquier select, no hace nada de esto. Voy bien encaminado o me estoy dejando algo?

Gracias por adelantado
  #2 (permalink)  
Antiguo 08/05/2011, 13:55
 
Fecha de Ingreso: mayo-2011
Ubicación: Zaragoza
Mensajes: 58
Antigüedad: 13 años
Puntos: 5
Respuesta: Comprobacion de valores de campos select

Hola soy nuevo en el foro me voy a estrenar dandote un pequeño empujon si puede ser.

cosas que veo en el javascript:

Código:
      function comprob(){
          for(i=1;i<5;i++){
              ic = document.entrcadetes["cadetesdia"+i].value;
              for(e=1;e<5;e++){
                  ec = document.entrcadetes["cadetesdia"+e].value;
                  if(ic==ec){
			document.entrcadetes.enviar.disabled = true;
                  }
              }
          }
      }
He modificado la forma que accedes a el valor value ya que no funciona del otro modo (probado solo en firefox imagino que funciona en los demas tambien).

la otra cosa es que disable debe ser un atributo de input y no un style de css. asi que como aparece arriba es la forma de modificar el disable. para terminar true no va entre comillas que no es un string sino un boolean.

aun con todo veo que tendras que agregar algo al "if" para que no compruebe el mismo elemento y te de como resultado false. ademas de que si ya hay dos campos que den false desde el principio ya hay que salir del todo por que no conviene comprobar mas por que ya tiene que quedar "disable"

espero haberme explicado.

saludos
  #3 (permalink)  
Antiguo 08/05/2011, 16:03
 
Fecha de Ingreso: mayo-2011
Ubicación: Zaragoza
Mensajes: 58
Antigüedad: 13 años
Puntos: 5
Respuesta: Comprobacion de valores de campos select

Bueno aqui te dejo para que te hagas mas o menos a la idea lo que yo considero mejor. he hecho una busqueda secuencial sin repetir los que ya se habian hecho que es tonteria. si no te aclaras con el codigo preguntame

Código Javascript:
Ver original
  1. function comprob(){
  2. i=1;
  3. semaforo=true;
  4. while(i<5 && semaforo){
  5. ic = document.entrcadetes["cadetesdia"+i].value;
  6. j=i;
  7. while(j<5){
  8. j++;
  9. ec = document.entrcadetes["cadetesdia"+j].value;
  10. if(ic == ec){
  11. document.entrcadetes.enviar.disabled = true;
  12. semaforo=false;
  13. break;
  14. }
  15. j++;
  16. }
  17. i++;
  18. }
  19. if(semaforo){
  20. /*No hay iguales"*/
  21. document.entrcadetes.enviar.disabled = false;
  22. }}

no se si seria correcto que en el html colocaras la etiqueta desactivada desde el principio

Código HTML:
Ver original
  1. <input type="submit" value="Actualiza!" name="enviar" disable="true"/>

saludos
  #4 (permalink)  
Antiguo 09/05/2011, 06:54
3nr1c
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Comprobacion de valores de campos select

Muchas gracias a los dos, ahora entiendo donde estaba el problema , me ha servido muchísimo.

Jarios, el atributo disable desde el principio podría ir bien, pero como la asignación sin coincidencias se hace a través de una base de datos, no es necesario (ya se nota que es un juego, verdad? )

Saludos

Etiquetas: campos, comprobacion, 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 01:51.