Я работаю над проектом, в котором у меня проблема с функцией комментирования, которую я сделал.Всякий раз, когда я комментирую и использую специальные символы, консоль отображает эту ошибку: syntax error, unrecognized expression
.Кроме того, запрос проходит, и мой бэкэнд (PHP) вставляет данные в БД, но затем мне нужно обновить, чтобы получить обновленную версию сообщения с этим новым комментарием.Я не могу понять, почему даже после нескольких поисков здесь в стеке, и я действительно мог бы использовать новую пару глаз на код.
Я думаю, что бэкэнд не проблема, поэтому оноставил из этого поста.Кроме того, форма просто содержит текстовый ввод и кнопку отправки.Возможно, важно упомянуть, что я использую 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);
}
});
}
}
});