Como una manera de evitar repetir las mismas instrucciones, la sección del bucle podría quedar así:
Código Javascript
:
Ver originalfor (var i=0, elems=Formulario.elements, l=elems.length, cadenaFormulario = []; i < l; i++) {
if (!("checked" in elems[i]) || elems[i].checked){
cadenaFormulario.push(elems[i].name+'='+encodeURIComponent(elems[i].value));
}
}
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 originalpeticion.send(cadenaFormulario.join("&"));
Un saludo