emlog评论成功后刷新页面并跳转到指定评论处
0
1267
2023年6月25日
在制作模板中,因为各种需求想自己获取表单当参数然后评论成功官方接口并没有提供json返回的数据,只能自己获取参数了,但是发现有个小问题,评论成功后不能取到最新的评论id所以自己想了个小办法,下面直接放上代码吧仅供参考。
首先表单需要添加一个idcommentform
按钮需要添加一个idcomment_submit
<form method="post" action="<?= BLOG_URL ?>index.php?action=addcom" id="commentform" role="form">
// ... 其他代码 ...
</form>
<button type="submit" id="comment_submit">发表评论</button>
接下来上js代码
提示:下面中id^='li-comment-']
这个获取的是评论列表中id名为li-comment-
后面当id,不懂看图
$("#comment_submit").click(function(event){
event.preventDefault();
doSubmitComment();
});
function doSubmitComment(){
$.ajax({
url: $("#commentform").attr('action'),
type: 'post',
data: $("#commentform").serialize(),
cache: false,
async:false,
success: function(res){
var pattern = /<div class="main">[\r\n]+<p>(.*?)<\/p>/;
if(pattern.test(res)) {
res = res.match(pattern);
alert(res[1])
}else{
alert(评论成功!)
setTimeout(function() {
var commentId = $(res).find("[id^='li-comment-']").attr("id");
if (commentId) {
commentId = commentId.split("-").pop();
window.location.href = window.location.href.split("#")[0] + "#" + commentId;
window.location.reload(true);
} else {
// 如果评论ID不存在,则只刷新页面
window.location.reload(true);
}
}, 2000);
}
},error: function(){
btn.attr("disabled",false);
}
});
};
这个主题简介啊