我差不多2年前下载了一个php / ajax评论脚本,从第一天开始就遇到了这个小问题。我试图联系作者,但他无处可寻。
有时当我点击“发送”按钮时,该按钮会保持禁用状态,并且根本不会发生任何事情。它只是继续显示动画的忙碌图片。我根本没有收到任何错误消息。
我想知道你们中的任何一位专业人士是否可以帮助我?
以下是相关代码:
<div class="comment_heading">Leave a Comment</div>
<div class="post_comment">
<textarea name="txtpostcomment" id="txtpostcomment-'.$postid.'" class="txtpostcomment"></textarea>
<button class="btnpostcomment" id="btnpostcomment-'.$postid.'" onclick="comment('.$postid.');" type="button">Send</button>
<input type="hidden" name="token" id="token" value="'.$_SESSION['token'].'">
<script>document.getElementById("txtpostcomment-'.$postid.'").focus();</script>
</div>
comment = function(postid1)
{
var txt = $('#txtpostcomment-'+postid1);
var btn = $('#btnpostcomment-'+postid1);
var comment1 = $(txt).val();
var token = $("#token").val();
$(btn).css('background-image', 'url(/comments/submit-busy.gif)');
$(btn).attr('disabled', true);
$.post("/comments/submit.php",{commenting:1, postid:postid1, comment: comment1, name: name, token: token},
function(msg)
{
if(msg.status)
{
$('.post_comment .error_msg').remove();
$('.comment-list-'+postid1).prepend(msg.html);
$(txt).val('');
$('.comChars').empty();
}
else
{
$('.post_comment .error_msg').remove();
$('.error_msg').clone().appendTo('.post_comment');
$('.error_msg:last').append(msg.error);
}
$(btn).css('background-image', 'none');
$(btn).attr('disabled', false);
$(txt).attr('disabled', false);
},'json');
}
答案 0 :(得分:1)
如果Ajax请求失败(由于网络断开,服务器错误等),您的代码似乎没有检查错误情况。检查你的javascript控制台是否有任何js错误。由于它使用$.post
,您可能希望扩展代码以添加错误处理,如果您使用的jQuery版本支持它。或者,使用$.ajax
。有关详细信息,请参阅http://api.jquery.com/jquery.post或http://api.jquery.com/jquery.ajax