`

关于<textarea>中的“回车”在后台,mysql数据库,html和<textarea>中的显示问题总结

 
阅读更多

       当然不得不说这是一个被问烂的问题,可是被问烂那说明这个问题经常出现。度娘的结果却是是五花八门,有采用类似Fckeditor Ckeditor,和百度的 Ueditor. 这样的网页文本格式编辑器插件的,我也用过一个,不过对于小型项目来说太烦,把js的包加载进去启动项目时非常耗时;当然也有很多就用textarea的,还有用divcontentable属性让div可以编辑的。。。不能说错,但用在自己身上总有不对的地方。之后的还得自己慢慢调试!

     首先解释一下在不同的区域他们现实的不同格式吧。当然本篇先仅讨论“回车”这个字符。

1.在<textarea>中,“回车”(实际意义是换行)这一字符是"\n",如果存在”<br/>“,在其中也显示为”<br/>“,我猜想”\r\n“也显示为换行;

 

2.在mysql数据库中可以存放很多种"回车",但是“回车”代表了不同的含义,一个是换行,一个就是回车本身。如果你将带有换行的文本复制到数据库中,你可以明显的看出是有换行的一个特点的。

,在数据库中换行是\r\n,当然你存的时候是,取出来也是。

 

3.html中“回车“,是换行符”<br/>"

 

4.在td中的title中,如果设置了值,它的换行是“\r\n”,回车是“\n

 

5.最后的重点是java后台:

       在传到后台的时候呢,我用一个输出ASCII码的方法输出了“回车”,然而并没有什么卵用。但是后来我发现不是后台无法输出的问题,而是在前台传递参数时用的是get方式,如果使用post,这些格式是都可以传过来的。再次尝试发现“回车”这个字符在java后台中输出是一个“”+“13”+“10"。对照ASCII码表,由于一些符号是不允许输出的所以“”代表了,"13"代表的是回车符,"10"代表的是换行符。所以显而易见,如果使用post方式,传到后台,存入数据库都没有问题。但是在html中就有问题。

 

解决方法就很明显:

最简单的方式就是用post传递方式,在textarea不会存在问题,但是在html中显示会存在没有换行的问题。

空格也将会只显示一个" ",度娘的结果很少说用post传参,只有一些大神直接说了句,”传递的是什么,后台拿到的就是什么呀“,回答了等于没回答。。。。。PS:后补部分:之后发现,只要在html中显示的地方,只要将数据库中的数据直接放在<pre></pre>标签中。即可显示正常。

pre 元素可定义预格式化的文本。被包围在 pre 元素中的文本通常会保留空格和换行符。而文本也会呈现为等宽字体。

<pre> 标签的一个常见应用就是用来表示计算机的源代码。

提示:制表符(tab)在 <pre> 标签定义的块当中可以起到应有的作用,每个制表符占据 8 个字符的位置。但是我们不推荐使用它,因为在不同的浏览器中,Tab 的实现各不相同。在用 <pre> 标签格式化的文档段中使用空格,可以确保文本正确的水平位置。

提示:如果您希望使用 <pre> 标签来定义计算机源代码,比如 HTML 源代码,请使用符号实体来表示特殊字符,比如 "&lt;" 代表 "<","&gt;" 代表 ">","&amp;" 代表 "&"。

 或者采用评论区的网友给的:在显示时,给显示数据套上一个<div>,然后设置style的white-space: pre-wrap。效果类似与上述的pre标签,非常感谢。

这里再补充一下,由于回车是一个换行的标识,那么数据在标签中也必须应该有自动换行的效果,而不会撑爆一个div或者其他容器,这里就要对容器设置style中的width:600px;,同时还有WORD-WRAP: break-word;这个属性值,那么数据到达宽度长度时就会自动换行,测试时建议不要使用连续的字母和数字,因为没有空格,就被认定为是一个单词,这样 换行就会出现 提前换行的效果。这也是我们不愿意看到的。

我觉得最好的方式是修改格式,存入数据库时,"\n"换行全部替换为"<br/>",这样的好处是,如果有其他人做前台显示时,放在html中就可以直接显示,不会出现格式问题。

修改显示方式也很麻烦,如下:

1.在前台用get方式传递回车时,需要把content内容中的“\n”替换为“<br/>”或者"<br>";

while(-1!=content.indexOf("\n"))
{
   content = content.replace("\n","<br/>");
<}

 2.在前台需要编辑修改content内容时,后台从数据中取后要将相反操作,即将“<br/>”或者"<br>"替换为”\n”:

content =content.replace("<br/>", "\n");

 content同样放在<textarea>中。

3.当然也可以放入<textarea>中显示,但是最好设置<textarea>disabledisable;

4.如果是在html中显示的话,那么就不需要做任何处理,直接获取就可以了,其中的"<br/>"在html中就自然的是换行的行为。

 

 

 

写的比较仓促,也许有很多错误,或者错乱的地方。发现有问题可以留言给我。。。。工作如狗啊。后期还会修改。

 

11
5
分享到:
评论
2 楼 li370604005 2015-06-24  
酷的飞上天空 写道
富文本编辑器里面的换号不错考虑,提交到后台基本不是br就是p
仅使用textarea的情况下,在显示的界面给父级div设置一个熟悉就解决了,
属性如下:
white-space: pre-wrap

我没用div直接写在了<pre>标签里。今天同事在网上找了CSS,就是你说的这个方法,但是前提是让我把存在数据库中的<br>都换成了<p><p/>
1 楼 酷的飞上天空 2015-06-19  
富文本编辑器里面的换号不错考虑,提交到后台基本不是br就是p
仅使用textarea的情况下,在显示的界面给父级div设置一个熟悉就解决了,
属性如下:
white-space: pre-wrap

相关推荐

    HTML里面Textarea换行问题总结

    问题解决1: 一开始是提交数据的时候格式是AAA&lt;BR&gt;BBB,但是这是显示换行,其实在TextArea里面并不是真正按行存放的,因为这个时候再提交给另外一个TextArea的时候就是显示AAABBB,而不是换行显示了,因此仅仅是显示...

    使用HTML开发商业网站-表单控件-textarea课件.pptx

    在本课件中,我们将深入探讨`&lt;textarea&gt;`的基本用法和一些高级特性。 ### `&lt;textarea&gt;` 基本语法 `&lt;textarea&gt;` 控件的基本语法结构如下: ```html &lt;textarea cols="每行中的字符数" rows="显示的行数"&gt;文本内容&lt;/...

    textarea换行符

    例如,可以将`\r\n`替换为`&lt;br&gt;`标签,这样在页面上显示时能够保持正确的换行效果。 ```javascript // 获取textarea中的值 var str = document.getElementById("textarea").value; // 使用正则表达式匹配所有的\r\...

    把富文本的回车转为br标签

    编辑框中可以识别的字符,在普通的标签里面没办法识别到,所以要转换成可以识别的&lt;br&gt; 方法1 string.replace(/(rn|n|r)/gm, ) 然后再用v-html=转换之后的string,就可以正常展示换行了 方法2 第二种方

    HTML标签(下)(表格+列表+表单)

    HTML标签(下)(表格+...&lt;textarea rows="10" cols="30"&gt;请在这里输入文字&lt;/textarea&gt; ``` 本节我们介绍了HTML标签的更多内容,包括表格、列表和表单。这些标签可以用来创建复杂的网页结构,并提供了更多的交互功能。

    javascirpt 在textarea中运行(自己学习)

    &lt;title&gt;JavaScript in Textarea&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;textarea id="codeInput" rows="10" cols="50"&gt;&lt;/textarea&gt; &lt;button onclick="runCode()"&gt;Run Code&lt;/button&gt; &lt;script&gt; function runCode() { const ...

    JSP获取TextArea中的值

    当用户在TextArea中输入文本并提交表单后,这些数据会被发送到服务器。在JSP中,我们可以使用请求对象(`HttpServletRequest`)来获取这些数据。JSP提供了内置的`request`对象,它是`HttpServletRequest`的一个实例...

    textarea文本框删除当前行内容的功能

    在网页开发中,`textarea` 是一种常用的HTML元素,用于创建多行文本输入字段,用户可以在其中输入大量文本。在某些场景下,我们可能需要实现一个功能,即当用户点击某个按钮时,删除`textarea`中当前光标所在行的...

    控制textarea文本长度,并限制输入字数(带统计显示)

    在网页设计中,`textarea`元素常用于收集用户的大段文字输入,如评论、留言等。然而,有时候我们需要对用户输入的字符数进行限制,防止过长的文本影响页面布局或数据库存储。本文将深入探讨如何实现对`textarea`文本...

    HTML标签总结,包含HTML4和HTML5

    HTML5中新增了一些标签,如`&lt;article&gt;`、`&lt;aside&gt;`、`&lt;audio&gt;`、`&lt;canvas&gt;`、`&lt;video&gt;`等,同时也废弃了一些标签,如`&lt;applet&gt;`、`&lt;basefont&gt;`等。 HTML标签是网页开发的基础,熟悉这些标签的用途和功能是开发网页...

    html思维导图及总结

    - &lt;header&gt;、&lt;footer&gt;、&lt;article&gt;、&lt;section&gt;、&lt;aside&gt;、&lt;nav&gt;:用于定义文档的不同部分,有助于改善可访问性和SEO。 5. HTML5新增标签: - &lt;audio&gt;、&lt;video&gt;:分别用于嵌入音频和视频。 - &lt;canvas&gt;:用于画布和...

    HTML 总结(已完).docx

    HTML的基本语法是,HTML标签必须由&lt;&gt;包裹,HTML标签一般成对出现,分为开始/开放标签和结束/闭合标签,也称容器。标签与标签之间可以嵌套,但必须正确的嵌套。HTML标签不区分大小写。 HTML的基本结构是:&lt;html&gt;为根...

    Web程序的设计基础实验报告.docx

    `&lt;b&gt;`和`&lt;i&gt;`用于加粗和斜体,`&lt;font&gt;`控制文字颜色和大小,`&lt;marquee&gt;`实现滚动文字,`&lt;hr&gt;`添加水平线,`&lt;ul&gt;`和`&lt;li&gt;`创建无序列表,`&lt;a&gt;`定义超链接,`&lt;table&gt;`创建表格,`&lt;input&gt;`、`&lt;textarea&gt;`和`&lt;select&gt;`...

    html中的textArea使用及实例

    在HTML(超文本标记语言)中,`&lt;textarea&gt;`元素是一个非常重要的组成部分,它用于创建一个多行文本输入字段,允许用户输入和编辑大量的文本。在网页设计和开发中,`textarea`常用于收集用户反馈、评论、故事或任何...

    Html5中文手册(程序员必备手册)

    83、&lt;textarea&gt; 定义 textarea。 84、&lt;tfoot&gt; 定义表格的脚注。 85、&lt;th&gt; 定义表头。 86、&lt;thead&gt; 定义表头。 87、&lt;time&gt; 定义日期/时间。 88、&lt;title&gt; 定义文档的标题。 89、&lt;tr&gt; 定义表格行。 90、&lt;ul&gt; 定义无序...

    基于JSP和MySQL的留言板系统设计与实现

    &lt;td&gt;&lt;textarea name="neirong" cols="60" rows="10"&gt;&lt;/textarea&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;input name="submit" type="submit" value="提交留言"&gt;&lt;/td&gt; &lt;td&gt;&lt;input name="reset" type="reset" value="重置留言"&gt;&lt;/...

    HTML标签属性大全

    表单标签是指在HTML文档中用于定义表单的标签,包括&lt;form&gt;、&lt;input&gt;、&lt;textarea&gt;等标签。 &lt;form&gt;标签用于定义表单。&lt;input&gt;标签用于定义输入控件。&lt;textarea&gt;标签用于定义多行文本输入控件。 七、框架标签 框架...

    使用JavaScript限制TextArea多行文本域的可输入字数

    在网页设计中,`&lt;textarea&gt;`元素用于创建一个多行文本输入区域,用户可以在其中输入大量文本。然而,有时候我们需要对用户能输入的字符数进行限制,以满足特定的需求,例如防止数据库存储过量数据或者保持页面布局的...

    textarea去除多余空格和回车的方法及其属性

    总结起来,正确使用`&lt;textarea&gt;`标签的语法以及合理配置其属性,结合JavaScript进行后端处理,可以帮助我们有效地管理和控制用户在`textarea`中的输入,从而避免多余的空格和回车。对于需要保持文本格式的应用场景,...

    html5 中文手册

    * 表单标签:&lt;form&gt;、&lt;input&gt;、&lt;textarea&gt;、&lt;select&gt;、&lt;button&gt; * 表格标签:&lt;table&gt;、&lt;tr&gt;、&lt;td&gt;、&lt;th&gt;、&lt;caption&gt; 此外,本手册还将对 HTML5 的事件属性进行详细的解释,包括 onclick、ondblclick、onmouseover、...

Global site tag (gtag.js) - Google Analytics