语法错误,ajax调用中无法识别的表达式

时间:2019-01-30 00:11:39

标签: javascript jquery ajax

我正在一个项目中,我所做的评论功能存在问题。每当我评论并使用特殊字符时,控制台都会显示以下错误: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);
                }
            }); 
        }
    }

});

0 个答案:

没有答案