如何在不在jquery中创建文本框的情况下显示<input type =“”text'=“”/>?

时间:2014-05-01 07:01:28

标签: javascript jquery html

我有一个评论框(textarea),用户在其中输入内容,当他点击输入时,该内容会自动显示在评论部分&#39;中。现在,当用户点击提交时,我执行以下代码,

var comment = $("#commentBox").val();
var commentSection = $("#commentSection");
comment.appendTo(commentSection);

通过上面的代码,用户输入的注释会动态显示在commentSection中。这种方法很好,但是当用户键入类似的东西时,

<input type='text'>

在评论框中,然后在评论部分中创建一个文本框。那么我有没有办法让这种情况发生呢? 提前谢谢。

4 个答案:

答案 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);