Ajax Call替换单引号jquery

时间:2011-07-21 15:11:15

标签: jquery ajax json

function RejectItem(link, compqID, comments, officerID) {
    if ($(link).parent().find("div.divComments").is(":visible")) {
        $.ajax({
            type: "POST",
            url: "../contentService.asmx/RejectComplianceItem",
            data: "{ 'compqID': '" + compqID + "', 'comments': '" + $(link).parent().find("div.divComments").find('.taComments').val() + "', 'officerID': '" + officerID + "'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(msg) {
                hideRow(compqID);
            }
        });
    } else {
        $(link).parent().find("div.divComments").show();
    }
}

每当($(link).parent().find("div.divComments").find('.taComments').val())返回此函数中具有单引号的值时,它就会失败。

任何修复?

3 个答案:

答案 0 :(得分:2)

您想要将您发送的数据编码为JSON吗?如果是这样,那么你的JSON无论如何都是无效的。字符串和键必须用双引号括起来。

使用JSON.stringify [docs]

data: JSON.stringify({
    compqID: compqID,
    comments: $(link).parent().find("div.divComments").find('.taComments').val(), 
    officerID: officerID
}),

JSON实施也可用here

答案 1 :(得分:0)

逃避单引号。像这样的东西。

$(link).parent().find("div.divComments").find('.taComments').val().replace("'", "\'");

答案 2 :(得分:0)

试试这个

function RejectItem(link, compqID, comments, officerID) {
        if ($(link).parent().find("div.divComments").is(":visible")) {
            var data = { 'compqID': compqID, 'officerID': officerID, 
                  'comments': $(link).parent().find("div.divComments").find('.taComments').val()};

            $.ajax({
                type: "POST",
                url: "../contentService.asmx/RejectComplianceItem",
                data: data,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(msg) {
                    hideRow(compqID);
                }
            });
        } else {
            $(link).parent().find("div.divComments").show();
        }        


    }