如何显示<输入类型=''text'>而不在jquery中创建文本框

How to display <input type=''text'> without creating a textbox in jquery?

本文关键字:gt text 文本 创建 jquery 何显示 显示 类型 输入 lt      更新时间:2023-09-26

我有一个注释框(文本区域(,用户在其中键入内容,当他点击回车键时,该内容会自动显示在"注释部分"中。现在,当用户点击提交时,我正在执行以下代码,

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

通过以上代码,用户键入的注释被动态地显示在commentSection中。这很好,但当用户键入类似的内容时

<input type='text'>

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

一种方法是将数据附加为.text

类似这样的东西:

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

编辑:要附加到注释的现有部分,请替换:

commentSection.text(comment);

带有:

commentSection.text(commentSection.text() + comment);

您必须将字符串转换为实体。定义此功能:

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

试试这个,

div.insertAdjacentHTML( 'beforeend', comment);

您可以使用

var commentText = $("#commentBox").text();

但这并不能清除字符串上的html标签,此外,你可以使用一个函数来完成这个

function RemoveHTMLTags(vals) {
            var regX = /(<([^>]+)>)/ig;
            var html = vals;
            return (html.replace(regX, ""));
        }

然后使用:

var finalComment = RemoveHTMLTags(commentText);