Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Cambiar Instrucción de If else a Switch case

Estas en el tema de Cambiar Instrucción de If else a Switch case en el foro de Javascript en Foros del Web. Buenas noches me estoy rompiendo la cabeza en algo creo muy simple como cambio la siguiente instrucción de If else a switch case Código PHP: ...
  #1 (permalink)  
Antiguo 12/09/2014, 21:04
Avatar de WebSalvador  
Fecha de Ingreso: agosto-2011
Ubicación: Lima - Perú
Mensajes: 171
Antigüedad: 12 años, 8 meses
Puntos: 2
Cambiar Instrucción de If else a Switch case

Buenas noches me estoy rompiendo la cabeza en algo creo muy simple como cambio la siguiente instrucción de If else a switch case

Código PHP:
var varFormaPago="";
    if(
document.getElementsByName("MedioPago")[0].checked){
        
varFormaPago document.getElementsByName("MedioPago")[0].value;
    }else if(
document.getElementsByName("MedioPago")[1].checked){
        
varFormaPago document.getElementsByName("MedioPago")[1].value;
    }else if(
document.getElementsByName("MedioPago")[2].checked){
        
varFormaPago document.getElementsByName("MedioPago")[2].value;
    }else{
        
varFormaPago "";
    } 
Les voy agradecer mucho, muchas gracias
__________________
Studio Web Salvador http://www.acuarel.pe/
  #2 (permalink)  
Antiguo 13/09/2014, 00:04
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Cambiar Instrucción de If else a Switch case

Como veo que estás usando el método getElementsByName, el cual ―según esta fuente― no tiene soporte completo y correcto en versiones anteriores a IE10, te recomiendo utilizar el método querySelector, el cual tiene soporte desde IE8. Con dicho método, reducirías todo a una sola línea:

Código Javascript:
Ver original
  1. var varFormaPago = document.querySelector("[name=MedioPago]:checked").value;

De esta forma, tomo al elemento cuyo nombre sea igual a 'MedioPago' y, utilizando el pseudo-atributo :checked (que tiene soporte desde IE9), filtro al elemento que se encuentre marcado, reduciendo ―en este caso― el número de elementos seleccionados a uno (la opción marcada). Luego, solo me queda tomar su valor.



Y si quieres que también funcione en IE8 y versiones anteriores, podrías tomar a todos los elementos de nombre 'MedioPago' con el método querySelectorAll, lo iteras con ayuda de un bucle (While, For, Do-While) y, en cada iteración, compruebas que el elemento actual en la iteración esté marcado (propiedad checked); de estarlo, obtienes su valor, lo asignas a la variable y sales del bucle.

Código Javascript:
Ver original
  1. var opciones = document.querySelectorAll("[name=MedioPago]"),
  2.     total = opciones.length,
  3.     varFormaPago = null;
  4.  
  5. for (var i = 0; i < total; i++){
  6.     if (opciones[i].checked){
  7.         varFormaPago = opciones[i].value;
  8.         break;
  9.     }
  10. }

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 13/09/2014, 18:59
Avatar de WebSalvador  
Fecha de Ingreso: agosto-2011
Ubicación: Lima - Perú
Mensajes: 171
Antigüedad: 12 años, 8 meses
Puntos: 2
Respuesta: Cambiar Instrucción de If else a Switch case

Realmente muchas gracias, como yo estaba usando ese if else no me salia mi formulario pero ahora que use el querySelector mi formulario funciono correctamente, aquí el funcionamiento: http://www.cercaati.com/formulario/

Te agradesco bastante llevaba 3 días con el problema.
__________________
Studio Web Salvador http://www.acuarel.pe/

Etiquetas: case, switch
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 04:50.