2011-07-21 114 views
0
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())返回此函数中具有单引号的值时,它将失败。Ajax调用替换单引号jquery

是否有修复?

回答

2

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

使用JSON.stringify[docs]

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

JSON实现还可以here

+0

这是什么实际上做? –

+0

@Richard:它将对象编码为JSON。比手动构建更好,并且它会妥善处理转义。 –

+0

很酷。它是否是jQuery的一部分或浏览器的本地? –

0

转义单引号。像这样的东西。

$(link).parent().find("div.divComments").find('.taComments').val().replace("'", "\'"); 
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(); 
     }   


    }