2011-07-21 152 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(); 
     }   


    }