将文本附加到带有换行符的文本区域

Posted

技术标签:

【中文标题】将文本附加到带有换行符的文本区域【英文标题】:append text to a textarea with line breaks 【发布时间】:2013-08-19 04:16:18 【问题描述】:

我想向textarea 添加一些字符串,它们是文件基名。一切都很好,但唯一的问题是它混合了所有值并且没有任何换行符:

var file_name = file.file_name;
var base = new String(file_name).substring(file_name.lastIndexOf('/') + 1); 
if(base.lastIndexOf(".") != -1)       
base = base.substring(0, base.lastIndexOf("."));
$('textarea#image_Basename').append(base).split('\n');

这些是我的文件基组:

5b0cd65710052633dc5dcac406a382c4
212asaddgcvjh622sdsds22113554dfd
5sd5weea55rr6qasfdjkloijhj665s6a

但是在将数据存储到数据库并检索它之后,我得到的结果是:

5b0cd65710052633dc5dcac406a382c4212asaddgcvjh622sdsds22113554dfd5sd5weea55rr6qasfdjkloijhj665s6a

【问题讨论】:

你能提供一个file_name的内容在操作之前的例子吗? 我正在上传文件,我在上传成功时使用它:'onUploadSuccess' : function(data, file, response) file = JSON.parse(file);var file_name = file.file_name;,文件名类似于:file_name = 5b0cd65710052633dc5dcac406a382c4.jpg 我编辑了我的评论。有帮助吗?! 我已经更新了我的答案以支持两种处理问题的方法。 file_name中似乎没有/字符,也没有\ns,而且文件名也只有一个…… 【参考方案1】:

要保留来自数据库或其他内容的换行符,请将换行符替换为换行的 html 实体:


base = base.replace("\n", '
');
$('#image_Basename').append(base);

如果您尝试在每个字符串末尾附加换行符,只需将其连接到字符串上:

$('#image_Basename').append(base + '
');

此外,您在 textarea jQuery 元素上使用了 split,这没有意义,因为它是 object 而不是 string

【讨论】:

不幸的是,这不起作用!我将它存储到数据库中,检索它后,我得到了混合值 是的,在使用$('#image_Basename').append(base + '
'); 之后,我终于可以得到我想要的了 :) 谢谢 :)【参考方案2】:

我特别感谢@rink.attendant.6,他的第二种方法对我有用:) 答案是:

$('#image_Basename').append(base + '
');

添加后,我在单独的行中获得了所有文件基名!

【讨论】:

以上是关于将文本附加到带有换行符的文本区域的主要内容,如果未能解决你的问题,请参考以下文章

即使有换行符捕获光标位置中的所有内容,也将特殊标签应用于所有选定文本中的文本区域

修改 HTML 的文本区域 - 呈现换行符

格式化填充的文本区域、回车符、换行符和 HAML

如何阻止 Chrome 在我的文本区域中添加额外的换行符?

文本区域中的换行符

如何在预填充的文本区域中将 <br /> 转换为换行符