【发布时间】:2012-06-18 21:03:12
【问题描述】:
如果我发表类似“hello there dog”之类的评论,效果会很好,但如果有任何特殊字符(如 ' 或 "),则评论已成功发布到数据库,但 jQuery 代码未在列表中显示评论。
感谢任何提示。
function feedbacksubmit () {
// Show the Ajax Loader
$("#ajaxloader").css("display","inline");
var textsubmitted = $("#feedbackinput").val();
if (textsubmitted.length < 5) {
alert("Don't forget to write something!");
// Hide the Ajax Loader
$("#ajaxloader").css("display","none");
}
else {
$.post("/feedback/ajax/insert/", {feedback: textsubmitted},
function(data) {
// Place the comment in the top of the list
$('<li></li>').prependTo("#comment-list").hide().prepend(data.commenttext2insert).fadeIn('slow');
// Hide the Ajax Loader
$("#ajaxloader").css("display","none");
// Clear out the textarea
$("#feedbackinput").val('');
}, "json");
}
}
这是一个示例响应,不适用于上面的 jQuery 代码:
{"returnmessage":"The Ajax operation was successful.","returncode":"0","commenttext2insert":"\n\t<div class=\"comment-header\">\n\t\t<span class=\"comment-avatar\">\n\t\t\t<a href=\"\">\n\t\t\t\t\n\t\t\t\t\t<img src=\"/_images/users/photos//17941/nobosh.jpg\" />\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t</a>\n\t\t</span>\n\t\t<span class=\"comment-author\">\n\t\t\t<a href=\"\">\n\t\t\t\t<b>BOB Man</b>\n\t\t\t</a>\n\t\t</span>\n\t\t<span class=\"comment-timestamp\">just now</span>\n\t</div>\n\t<div class=\"comment-body\">\n\t\t<p>12wsa\'</p>\n\t</div>\n"}
【问题讨论】:
-
您使用什么服务器端语言?此外,您是否考虑过返回一个 real JSON 对象并在 jQuery 中构造 HTML,而不是返回带有服务器准备的 HTML 的 JSON?
-
我正在使用 Coldfusion... 最好不要使用服务器准备的 HTML?这是为什么呢?
-
JSON 很棒,但如果您要返回 HTML,最好将其返回为 HTML 而不是 JSON,以减少服务器和客户端所需的不必要处理,并且代码会更简洁.或者正如 BalusC 提到的,您可以走另一条路并返回 JSON 并在客户端构建 HTML。这三个在技术上都可以工作,但 JSON 上的 HTML 可能是最难处理的问题。
标签: java jquery html coldfusion