解决textarea有换行时的数据存库及赋值问题

原创 2017年05月22日 16:53:10

解决此问题前,先要知道textarea里的换行标记是 \n。这是我用一个笨办法测试的结果,所用浏览器为火狐和IE11,数据库为mysql。

<textarea placeholder="详情描述要求" id="description"></textarea>

测试办法如下:

    var d = $('#description').val();

    alert(d.split('\n')+'******'+d.split('\r'));   //根据数字判断出换行标记为\n

如果不进行任何处理,textarea的值是可以直接存库的,而且数据库中是不会显示\n这个换行标记的,但是在给页面赋值时,不管用 $('#description').val(从数据库中查出的值)还是$('#description').text(从数据库中查出的值),浏览器都会报错。

    假设从数据库中查出的值为‘测试换行(此处有换行)第二行’,赋值方法为.val(),那么浏览器这样报错:

      $('#description').val('测试换行

          第二行');       报错意思是字符串没有正确结束,这是因为换行在赋值时生效了,所以你的赋值语句为2行,所以会报错。


在网上搜了半天没找到解决办法,我自己想了一个,办法如下:

     在取值存库之前,做此处理:info.desc=$('#description').val().replace(/\n/g,'<br>');  把\n替换为普通字符串<br>,这个普通字符串是随意的,我这里用的是<br>,只是在输入内容时不能输入这个字符串,否则会对结果有影响。替换完之后再往数据库存,这时数据库中的值为:测试换行<br>第二行。

     给页面赋值时,你可以在sql中就把这个字符串<br>替换为‘\n’,也可以在页面通过js把<br>替换为‘\n’,替换之后,再用.val()或.text()赋值,此时不会报错,页面显示正常。


这个方法是我无意中试出来的,可能不太好,还有缺陷,因刚毕业不久,道行太浅,其中的原理我尚且不知,为何会报错及为何这样处理后就不报错我也说不清楚,总之在我的项目中目的是达到了,页面可以正常访问。

如果你有更好的方法或者知道这其中的原委,欢迎留言讨论,期待与你共进步!


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

textarea输入的内容保存到数据库,用div显示

背景:在近期的项目中,有这样一个需求:用户的个人简介,前台无刷新编辑。那么这个问题是不难的,实现方式: 1.可编辑的div 2.ajax请求保存div中输入的内容 到这里我相信很多朋友都是一目了...

JQuery给textarea取值和赋值

JQuery给textarea取值和赋值
  • bestcxx
  • bestcxx
  • 2016年02月24日 17:12
  • 38718

textarea 赋值

textarea 这个标签非Input标签,用得也相对于少一些,但这个在JQ中赋值时,就有些麻烦,我们平时在工程中创建的JSP的声明是 textarea id="textarea_id">初始值...

JQuery TextArea的取值与赋值问题

首先,说明这不是一个简单的问题!      先说取值: $("#textarea").text();读取,最近测试时候发现在firefox中读取不出textArea的值,IE正常 于是修...

textarea文字换行保存到数据后读出来没有换行 解决方案

1.需要保存数据库之前把textarea中的换行字符转换为存储到数据库。 2当读取的时候在把 替换成textarea的换行符\n就好了 注意:使用replace 方法的时候需要用正则表达式,否则只能替...
  • jspamd
  • jspamd
  • 2015年03月28日 16:49
  • 14074

textarea内容有换行时存入数据库丢失问题的解决

问题现状: 网页开发的过程中需要提供一个文本框给用户输入一段内容,但内容长度有限还没有到使用富文本编辑器插件的地步。因此提供了一个textarea供用户输入。 在调试过程中发现,textarea中...
  • dos_186
  • dos_186
  • 2015年09月14日 17:50
  • 4638

textarea中换行符存入数据库中为\r\n原因

在网页开发中,有时发现textarea中输入的换行符存入数据库中变成了\r\n而不是换行符,这是由于在读取textarea中的数据的时候,先把他们转换为了字符串然后存入的数据库,那么换行符就会被译成\...

jsp实现textarea中的文字保存换行空格存到数据库

UploadNews.jsp

textarea 存入数据库后 换行 、空格显示

兼容性:IE9以上、FF、chrome在换行处匹配/\n/               IE7-8在换行处先匹配/\r/,再匹配/\n/   html:  name="" id="test_n...
  • Koutput
  • Koutput
  • 2017年07月05日 17:16
  • 178

java textarea 换行问题处理\n

在java中,textarea存入数据库时,文本框的换行存储的是一个看不到的换行符号(其实就是\n),但是读取出来后,放回到textarea的时候,变成了\n。 这时,需要在java代码里进行些处理...
  • zhq426
  • zhq426
  • 2017年07月12日 21:17
  • 477
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:解决textarea有换行时的数据存库及赋值问题
举报原因:
原因补充:

(最多只允许输入30个字)