Ver Mensaje Individual
  #5 (permalink)  
Antiguo 17/09/2015, 10:24
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Por que no envia correctamente los radio?

Como una manera de evitar repetir las mismas instrucciones, la sección del bucle podría quedar así:

Código Javascript:
Ver original
  1. for (var i=0, elems=Formulario.elements, l=elems.length, cadenaFormulario = []; i < l; i++) {
  2.     if (!("checked" in elems[i]) || elems[i].checked){
  3.         cadenaFormulario.push(elems[i].name+'='+encodeURIComponent(elems[i].value));
  4.     }
  5. }

En cada iteración, comprobamos que el elemento no posea la propiedad checked, es decir, que no sea un radiobutton o un checkbox, o que se encuentre marcado, algo que solo puede ocurrir con los radiobutton y checkbox. Si la condición se cumple, procedemos a ejecutar la instrucción que, como estaba en tu código, era la misma para cuando se trataba de un radiobutton o checkbox y estaba marcado como para cuando no era otro tipo de elemento.

Como también podrás apreciar, en lugar de añadir el par clave-valor como parte de una cadena, lo hago como elemento de un array. Esto es porque, de la forma en la que estaba, se iba a añadir un & innecesario al inicio. Mejor forma un array con los pares clave-valor y, en el método .send(), los unes con un & usando el método .join().

Código Javascript:
Ver original
  1. peticion.send(cadenaFormulario.join("&"));

Un saludo
__________________
«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