У меня есть страница, на которой сохраняются некоторые данные из текстовых полей во внутреннем интерфейсе с помощью вызова jjery ajax, таким образом:
function saveAsYouGo(){
$.ajax({
type: "POST",
url: "Report.aspx/SaveReport",
data: "{'EditorHTML': '" + _sftabs_rTxtRep.GetHTML() + "', 'Actions' : '" + GetActions() + "', 'Notes': '" + GetNotes() + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
lastHTMLVal = _sftabs_rTxtRep.GetHTML();
alert(msg.d);
}
});
}
GetActions и GetNotes в основном просто извлекают текст из нескольких текстовых полей вдоль строкэто
function GetActions(){
var na = [];
$('#optionsTable :checkbox:checked').each(function(){
var textVal, idVal;
textVal = $(this).parent().parent().next("td").find("textarea").val();
idVal = $(this).attr("id");
if(textVal != ""){
na.push(idVal, textVal);
}
});
return na;
}
, но когда в текстовых областях есть кавычки и т. д., он прерывает вызов ajax.Я немного искал JSON.stringify, но, похоже, это ничего не меняет.Я предполагаю, что есть способ закодировать текст перед отправкой, так что я могу расшифровать его на другом конце, прежде чем делать то, что нужно сделать ..?
, как и любая другая помощь, очень радостно полученная благодаря
РЕДАКТИРОВАТЬ нашел эти маленькие драгоценные камни, которые помогают для большинства вещей
function htmlEncode(value){
return $('<div/>').text(value).html();
}
function htmlDecode(value){
return $('<div/>').html(value).text();
}
однако вышеприведенные НЕ РАБОТАЮТ для работы с кавычками, насколько я могу судить инижеследующее, в котором предлагалось расставить кавычки вокруг элементов данных, не сработало вообще.
data: {'EditorHTML': _sftabs_rTxtRep.GetHTML() , 'Actions' : GetActions(), 'Notes':GetNotes()},
Какие-нибудь другие идеи?это сводит меня с ума
РЕДАКТИРОВАТЬ 2
просто обернул textVal в побег, таким образом:
if(textVal != ""){
cn.push(idVal, escape(textVal));
}
спасибо
физ