Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Igualar dos valores de un select para comprobacion de formulario

Estas en el tema de Igualar dos valores de un select para comprobacion de formulario en el foro de Javascript en Foros del Web. Buenos días. Estoy intentando hacer la siguiente validación para un formulario en javascript. Recoge un valor de un select llamado causa y el valor de ...
  #1 (permalink)  
Antiguo 09/05/2014, 03:08
 
Fecha de Ingreso: abril-2014
Ubicación: Almería
Mensajes: 58
Antigüedad: 8 años, 2 meses
Puntos: 2
Igualar dos valores de un select para comprobacion de formulario

Buenos días.

Estoy intentando hacer la siguiente validación para un formulario en javascript.
Recoge un valor de un select llamado causa y el valor de otro llamado checklist.

Recoge únicamente los 6 primeros caracteres de cada valor y los iguala en un if. Si son diferentes debe devolver false.

Sin embargo, no lo hace y además de eso anula todo el codigo javascript que hay debajo de este.


Código Javascript:
Ver original
  1. indice = document.getElementById('causa').selectedIndex;
  2. var causa = indice.substring(6, 0);
  3. indice = document.getElementById('checklist').selectedIndex;
  4. var checklist = indice.substring(6, 0);
  5.                
  6. if( causa != checklist) {
  7.     alert('La causa seleccionada no es correcta para el tipo de checklist indicado. Revisa los datos aportados.');
  8.     return false;
  9. }

¿Podríais por favor orientarme sobre donde se encuentra el error?

Saludos.

Última edición por milotower; 09/05/2014 a las 03:50
  #2 (permalink)  
Antiguo 09/05/2014, 04:17
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 14 años, 3 meses
Puntos: 574
Respuesta: Igualar dos valores de un select para comprobacion de formulario

selectedIndex como su nombre dice es el indice seleccionado, (0,1,2,3,...), no es ni el valor, ni el texto de la opción seleccionada.

Observa

Código Javascript:
Ver original
  1. indice = document.getElementById('causa').selectedIndex;
  2.     alert(indice);
  3.     var causa = indice.substring(6, 0);
  4.     indice = document.getElementById('checklist').selectedIndex;
  5.     alert(indice);
  6.     var checklist = indice.substring(6, 0);
  7.                    
  8.     if( causa != checklist) {
  9.         alert('La causa seleccionada no es correcta para el tipo de checklist indicado. Revisa los datos aportados.');
  10.         return false;
  11.     }

Puedes usar

Código MySQL:
Ver original
  1. document.getElementById('causa').value;

para obtener el valor o

Código Javascript:
Ver original
  1. document.getElementById('causa').options[document.getElementById('causa').selectedIndex].text;
para obtener el texto.

siendo

Código HTML:
Ver original
  1. <option value="el valor (value)">el texto (text)</option>
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 09/05/2014, 05:24
 
Fecha de Ingreso: abril-2014
Ubicación: Almería
Mensajes: 58
Antigüedad: 8 años, 2 meses
Puntos: 2
Respuesta: Igualar dos valores de un select para comprobacion de formulario

Perfecto! Muchas gracias por la aclaración.
Esto pasa por copypastear código....

En mi caso, me interesaba sacar el texto, y no el valor. Quedaría así:

Código Javascript:
Ver original
  1. var causa = document.getElementById('causa').options[document.getElementById('causa').selectedIndex].text;
  2.                 causa = causa.substring(6, 0);
  3.                 var checklist = document.getElementById('checklist').options[document.getElementById('checklist').selectedIndex].text;
  4.                 checklist = checklist.substring(6, 0);
  5.                
  6.                 if( causa != checklist) {
  7.                   alert('La causa seleccionada no es correcta para el tipo de checklist indicado. Revisa los datos aportados.');
  8.                     return false;
  9.                 }

Funciona perfectamente.

Una duda que me queda es, por qué motivo, anulaba las siguientes comprobaciones. ¿Acaso devolvía TRUE? ¿O se salía de la función?
  #4 (permalink)  
Antiguo 09/05/2014, 05:28
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 14 años, 3 meses
Puntos: 574
Respuesta: Igualar dos valores de un select para comprobacion de formulario

Código Javascript:
Ver original
  1. indice = document.getElementById('causa').selectedIndex;
  2. var causa = indice.substring(6, 0);

indice en este caso es un integer no un string, luego no tiene el metodo .substring() definido.

Usar la consola del navegador ayuda en estos casos.

TypeError: indice.substring is not a function
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 09/05/2014 a las 05:38

Etiquetas: comprobacion, formulario, igualar, select, valor
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:37.