我正在一个项目中,我所做的评论功能存在问题。每当我评论并使用特殊字符时,控制台都会显示以下错误:syntax error, unrecognized expression
。此外,请求通过了,我的后端(PHP)将数据插入到DB中,但随后我必须刷新以获取带有该新注释的帖子的更新版本。我什至不知道为什么即使在这里进行了几次搜索之后,我真的可以在代码上使用新的眼光。
我认为后端不是问题,这就是为什么它不在本文之列。此外,表单仅包含文本输入和提交按钮。值得一提的是,我使用的是jQuery v3.3.1。
最后,提交表单时,会触发ajax调用。在这里:
var newComment;
$(document).on("submit", "form[data-comment]", function(e){
e.preventDefault();
var where = $(this);
var updateThis = $(where).parent().parent();
var data = $(where).attr("data-comment").split(",");
var comment = $(where).find("input[name='commenter']").val().toString();// <= this might be the issue?
if (data[0] == 1){
if (data[1] != "" && data[2] != "" && data[3] != ""){
//insert comment via ajax and return post and insert post
if (newComment){ <= prevent firing until newComment = false
newComment.abort();
return false;
}
$(where).find("input[type='submit']").prop("disabled", true);
$(where).find("input[type='submit']").val("commenting...");
newComment = $.ajax({
url: "mypage/core/AjaxRequests.php", <= call to php handler
type: "POST",
data: { type: "15", data: data, comment: comment }
});
$(comment).val("");
newComment.done(function(response, textStatus, jqXHR){
newComment = false;
$(where).find("input[type='submit']").prop("disabled", false);
$(where).find("input[type='submit']").val("Comment");
if (response.length > 200){
$(updateThis).parent().fadeTo(0,0);
$(updateThis).parent().prop('outerHTML', response);
$(updateThis).parent().fadeTo(1,1);
}
});
}
}
});