前端 <textarea> 标签中的内容保存、展示

38 篇文章 0 订阅
6 篇文章 0 订阅

        前端开发中,<textarea> 在保存时格式是可以保存到数据库的,但是展示时因为 \n 和 \s 不能互转,导致页面不能按照刚开始的格式展示。我们可以采取以下方式解决:

方法一:

        保存的时候按照原格式保存,展示的时候在需要展示内容的 div 外层嵌套 <pre> 标签。

<pre>
    <div>{{ textareaContent }}</div>
</pre>

        <pre> 标签可定义预格式化的文本。被包围在 pre 元素中的文本通常会保留空格和换行符。而文本也会呈现为等宽字体。 
        <pre> 标签的一个常见应用就是用来表示计算机的源代码。对于技术博客经常会用到pre标签输出代码或是代码高亮,而默认情况下,pre 标签中的内容若超出范围不会自动换行。 
        下面介绍一个方法让 <pre > 标签中的内容自动换行并符合 W3C 标准(多浏览器支持):

pre { 
    white-space:pre-wrap; /* css3.0 */ 
    white-space:-moz-pre-wrap; /* Firefox */ 
    white-space:-pre-wrap; /* Opera 4-6 */ 
    white-space:-o-pre-wrap; /* Opera 7 */ 
    word-wrap:break-word; /* Internet Explorer 5.5+ */ 
} 

方法二:

        提交数据之前,将 textarea 的回车、空格先转换格式,再提交数据存入数据库,那样取出数据输出到 web 端也能保证格式一致。

//关键js代码
var text = $("textarea").text(); 
var des = text.replace(/\r\n/g, '<br/>').replace(/\n/g, '<br/>').replace(/\s/g, ' '); //转换格式
//将des文本内容存入数据库
//取出渲染视图即可 

方法三:

        数据库存储的是原生的 textarea 文本,这时候,输出到前端前需要解析文本。

        前提:textarea 文本上传到后台时已经包含了换行回车符,如果你发现 textarea 上传时没有保存换行回车,可以尝试设置 textarea 标签属性 wrap="hard" (html5支持)。

function init() {
	var text = $("div.text").text(); //先取出未转换格式前端数据
	var des = text.replace(/\r\n/g, '<br/>').replace(/\n/g, '<br/>').replace(/\s/g, ' ');  //转换格式
	$("div.text").empty(); 
	$("div.text").append(des);
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值