Ajax Call заменяет одинарную кавычку jquery - PullRequest
0 голосов
/ 21 июля 2011
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 ]

2 голосов
/ 21 июля 2011

Хотите кодировать данные, которые вы отправляете, в формате JSON?Если это так, то ваш JSON в любом случае недействителен.Строки и ключи должны быть заключены в двойные кавычки.

Использовать JSON.stringify [документы] :

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

Реализация JSON также доступна здесь .

0 голосов
/ 21 июля 2011

Попробуйте это

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();
        }        


    }
0 голосов
/ 21 июля 2011

Избегайте одинарных кавычек. Что-то вроде этого.

$(link).parent().find("div.divComments").find('.taComments').val().replace("'", "\'");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...