En la parte de HTML tengo varios formularios con la siguiente forma
Código HTML:
<form action="answer.php" method="post" id="formulariocomment0" name="formulariocomment"><input type="hidden" id="eventidformulariocomment0" name="eventid" value="VALOR"/><textarea name="comment" id="commentformulariocomment0" rows="3" cols="50"></textarea> <input type="submit" value="Enviar" name="boton" id="enviar"></form>
El código js os lo copio entero al final, pero pongo antes un extracto de donde creo que está el problema:
Por alguna razón el proceso se bloquea cuando intento pasarle a esta función el parámetro vec
Código:
function procesarEventos(vec) { var resultados = document.getElementById("resultados"+vec); if(conexion1.readyState == 4) { if (conexion1.status==200) { resultados.innerHTML = 'Gracias.'; } else { resultados.innerHTML=''; alert(conexion1.statusText); } } else if (conexion1.readyState==1) resultados.innerHTML = '1'; if (conexion1.readyState==2) resultados.innerHTML = '2'; if (conexion1.readyState==3) resultados.innerHTML = '3'; }
El código completo es:
Código:
addEvent(window,'load',inicializarEventos,false); function inicializarEventos() { var ref; ref=document.getElementsByName('formulariocomment'); for(f=0;f<ref.length;f++) { var ref=document.getElementById('formulariocomment'+f); addEvent(ref,'submit',enviarDatos,false); } } function enviarDatos(e) { if (window.event) { window.event.returnValue=false; var vec=window.event.srcElement.getAttribute('id'); enviarFormulario(vec); } else if (e) { e.preventDefault(); var vec=e.target.getAttribute('id'); //var resultados = document.getElementById("resultados"); //resultados.innerHTML = vec; enviarFormulario(vec); } } function retornarDatos(vec) { var cad=''; var nom=document.getElementById('eventid'+vec).value; var com=document.getElementById('comment'+vec).value; cad='eventid='+encodeURIComponent(nom)+'&comment='+encodeURIComponent(com); return cad; } var conexion1; function enviarFormulario(vec) { conexion1=crearXMLHttpRequest(); conexion1.onreadystatechange = procesarEventos(vec); conexion1.open('POST','answer.php', true); conexion1.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); conexion1.send(retornarDatos(vec)); } function procesarEventos(vec) { var resultados = document.getElementById("resultados"+vec); if(conexion1.readyState == 4) { if (conexion1.status==200) { resultados.innerHTML = 'Gracias.'; } else { resultados.innerHTML=''; alert(conexion1.statusText); } } else if (conexion1.readyState==1) resultados.innerHTML = '1'; if (conexion1.readyState==2) resultados.innerHTML = '2'; if (conexion1.readyState==3) resultados.innerHTML = '3'; } //*************************************** //Funciones comunes a todos los problemas //*************************************** function addEvent(elemento,nomevento,funcion,captura) { if (elemento.attachEvent) { elemento.attachEvent('on'+nomevento,funcion); return true; } else if (elemento.addEventListener) { elemento.addEventListener(nomevento,funcion,captura); return true; } else return false; } function crearXMLHttpRequest() { var xmlHttp=null; if (window.ActiveXObject) xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); else if (window.XMLHttpRequest) xmlHttp = new XMLHttpRequest(); return xmlHttp; }