我有一个评论框(textarea),用户在其中输入内容,当他点击输入时,该内容会自动显示在评论部分'中。现在,当用户点击提交时,我执行以下代码,
var comment = $("#commentBox").val();
var commentSection = $("#commentSection");
comment.appendTo(commentSection);
通过上面的代码,用户输入的注释会动态显示在commentSection
中。这种方法很好,但是当用户键入类似的东西时,
<input type='text'>
在评论框中,然后在评论部分中创建一个文本框。那么我有没有办法让这种情况发生呢? 提前谢谢。
答案 0 :(得分:6)
一种方法是将数据附加为.text
这样的事情:
var comment = $("#commentBox").val();
var commentSection = $("#commentSection");
commentSection.text(comment);
修改:要附加到评论的现有部分,请替换:
commentSection.text(comment);
使用:
commentSection.text(commentSection.text() + comment);
答案 1 :(得分:4)
您必须将字符串转换为实体。定义此功能:
function htmlencode(str) {
return str.replace(/[&<>"']/g, function($0) {
return "&" + {"&":"amp", "<":"lt", ">":"gt", '"':"quot", "'":"#39"}[$0] + ";";
});
}
然后在用户点击输入时运行以下代码:
var comment = htmlencode($("#commentBox").val());
var commentSection = $("#commentSection");
comment.appendTo(commentSection);
答案 2 :(得分:2)
试试这个,
div.insertAdjacentHTML( 'beforeend', comment);
答案 3 :(得分:2)
您可以使用
var commentText = $("#commentBox").text();
但是这不会清除字符串上的html标记,另外你可以使用函数来执行此操作
function RemoveHTMLTags(vals) {
var regX = /(<([^>]+)>)/ig;
var html = vals;
return (html.replace(regX, ""));
}
然后你使用:
var finalComment = RemoveHTMLTags(commentText);