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 originalvar 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 originalvar opciones = document.querySelectorAll("[name=MedioPago]"),
total = opciones.length,
varFormaPago = null;
for (var i = 0; i < total; i++){
if (opciones[i].checked){
varFormaPago = opciones[i].value;
break;
}
}
Saludos