[Resolvido] Código sendo executado várias vezes
Galera, sou bem iniciante em Javascript/Ajax/Jquery ... Como metade do mundo rsrs..
Enfim, eu tenho um formulário sendo enviado por ajax p/ o PHP fazer a validação...
Quando o PHP valida e retorna erro, ok, mostra o alert (que é um alert personalizado). Porém se eu envio novamente o formulário e o PHP retorna erro de novo, o alert é mostrado duas vezes, se eu envio de novo, é mostrado 3x.. E assim vai... Aí se eu coloco todos os dados certos e envio, ele cadastra x vezes no banco de dados...
(Não é o problema no alert, pq uso ele da mesma forma em outra área e funciona normalmente...)
Alguém tem alguma idéia?
Segue o código: (deve tar bem zuado, aceito melhorias)
<script type="text/javascript" language="javascript">
function respondeMsg(idMsg) {
// Quando o formulário for enviado, essa função é chamada
$("#btnEnviarResposta"+idMsg).click(function() {
// Colocamos os valores de cada campo em uma váriavel para facilitar a manipulação
var text = $("#text"+idMsg).val();
// Apaga mensagem de erro (se existir)
$("#retorno"+idMsg).html("");
// Exibe mensagem de carregamento
$("#divResposta"+idMsg).slideUp(300, function() {
$("#carregando"+idMsg).fadeIn(300, function () {
$.post('paginas/webmail/webmailEnviar.php', {text: text, idMsg: idMsg},
function(resposta) {
// Se foi enviado com sucesso, retorna 1
if (resposta == 1) {
$('#carregando'+idMsg).fadeOut(300, function() {
$('#divResposta'+idMsg).html(text);
$('#divResposta'+idMsg).slideDown();
});
}
else {
$.prompt('Ocorreu algum erro. Tente novamente ou entre em contato com a GLP. <br /><br /> Erro(s):<br /> '+resposta,
{
buttons:[
{title: "Ok", value: true}
],
submit: function(){
$('#carregando'+idMsg).fadeOut(300, function () {
$('#divResposta'+idMsg).slideDown();
});
}
});
}
});
});
});
});
}
</script>
E o formulário:
<div id="respostaMsg'.$linha['id_mensagem'].'" class="respostaMsg" style="display: none;">
<div class="textoResposta" id="divResposta'.$linha['id_mensagem'].'">
<form method="post" action="javascript: respondeMsg('.$linha['id_mensagem'].');">
<textarea id="text'.$linha['id_mensagem'].'" name="content" style="width:100%">
</textarea>
<input name="btnEnviar" id="btnEnviarResposta'.$linha['id_mensagem'].'" type="submit" value="Responder" />
</form>
</div>
<div id="carregando'.$linha['id_mensagem'].'" style="display: none;">
<center><img src="imgs/loading.gif" style="padding: 20px;"/></center>
</div>
<div id="retorno'.$linha['id_mensagem'].'"">
</div>
</div>';Discussão (4)
Carregando comentários...