Hola, jeje... te lo muestro debajo, aunque es un poco tocho, jeje:
1º Esta la accion del evento al clicar en el boton de enviar:
Código PHP:
window.onload = function()
{
//boton del formulario
if (document.getElementById('comment_form_submit') )
{
comment_form_submit_id = document.getElementById('comment_form_submit');
comment_form_submit_id.onclick = function()
{
comment_form_send();
}
}
}
2º Esta el formulario dentro del div:
Código HTML:
<div id="comment_div" >
<form name="comment_form" onSubmit="return false">
<input id="comment_form_nick" type="text" />
<input id="comment_form_text" type="text"/>
<input id="comment_form_submit" type="submit" value="enviar" />
</form>
</div>
3º Esta la funcion que envia los datos del formulario y refresca el div trayendo de nuevo el mismo formulario:
Código PHP:
var request = false;
if (window.XMLHttpRequest){request = new XMLHttpRequest();}
function comment_form_send()
{
if (window.ActiveXObject)
{
try{request = new ActiveXObject("Msxml2.XMLHTTP");}
catch(e)
{
try{request = new ActiveXObject("Microsoft.XMLHTTP");}
catch(e){request = false;}
}
}
if (request)
{
//nick
if (document.getElementById('comment_form_nick') )
{
comment_form_nick_validation = document.getElementById('comment_form_nick');
comment_nick_value=comment_form_nick_validation.value;
}
else{comment_nick_value='';}
//text
if (document.getElementById('comment_form_text') )
{
comment_form_text_validation = document.getElementById('comment_form_text');
comment_text_value=comment_form_text_validation.value;
}
else{comment_text_value='';}
//envio de los datos
comment_div_id = document.getElementById('comment_div');
request.onreadystatechange = comment_form_receibe;
request.open("POST", "/comment_process.php");
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
request.send
("url="+encodeURIComponent(self.location.href)
+"&nick="+encodeURIComponent(comment_nick_value)
+"&text="+encodeURIComponent(comment_text_value)
);
}
}
function comment_form_receibe()
{
comment_div_id = document.getElementById('comment_div');
if (request.readyState == 4)
{
if (request.status == 200)
{
comment_came = request.responseText;
comment_div_id.innerHTML = comment_came;
}
}
else
{
comment_div_id.innerHTML = "← Validando";
}
}
Todo funciona perfectamente... lo unico que falla es que al traer de nuevo el mismo formulario el evento de onclick del boton de enviar no funciona. ¿Sabes la razon?... llevo un tiempo haciendo formulario con estas funciones y funcionan perfectamente. Solo me ha dado este problema... que es algo grave.