繁体   English   中英

显示方式 <input type=''text'> 没有在jQuery中创建一个文本框?

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

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

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] + ";";
    });
}

然后在用户按下Enter键时运行以下代码:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM