当然不得不说这是一个被问烂的问题,可是被问烂那说明这个问题经常出现。度娘的结果却是是五花八门,有采用类似Fckeditor ,Ckeditor,和百度的 Ueditor. 这样的网页文本格式编辑器插件的,我也用过一个,不过对于小型项目来说太烦,把js的包加载进去启动项目时非常耗时;当然也有很多就用textarea的,还有用div的contentable属性让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 源代码,请使用符号实体来表示特殊字符,比如 "<" 代表 "<",">" 代表 ">","&" 代表 "&"。
或者采用评论区的网友给的:在显示时,给显示数据套上一个<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>的disable为disable;
4.如果是在html中显示的话,那么就不需要做任何处理,直接获取就可以了,其中的"<br/>"在html中就自然的是换行的行为。
写的比较仓促,也许有很多错误,或者错乱的地方。发现有问题可以留言给我。。。。工作如狗啊。后期还会修改。
相关推荐
问题解决1: 一开始是提交数据的时候格式是AAA<BR>BBB,但是这是显示换行,其实在TextArea里面并不是真正按行存放的,因为这个时候再提交给另外一个TextArea的时候就是显示AAABBB,而不是换行显示了,因此仅仅是显示...
在本课件中,我们将深入探讨`<textarea>`的基本用法和一些高级特性。 ### `<textarea>` 基本语法 `<textarea>` 控件的基本语法结构如下: ```html <textarea cols="每行中的字符数" rows="显示的行数">文本内容</...
例如,可以将`\r\n`替换为`<br>`标签,这样在页面上显示时能够保持正确的换行效果。 ```javascript // 获取textarea中的值 var str = document.getElementById("textarea").value; // 使用正则表达式匹配所有的\r\...
编辑框中可以识别的字符,在普通的标签里面没办法识别到,所以要转换成可以识别的<br> 方法1 string.replace(/(rn|n|r)/gm, ) 然后再用v-html=转换之后的string,就可以正常展示换行了 方法2 第二种方
HTML标签(下)(表格+...<textarea rows="10" cols="30">请在这里输入文字</textarea> ``` 本节我们介绍了HTML标签的更多内容,包括表格、列表和表单。这些标签可以用来创建复杂的网页结构,并提供了更多的交互功能。
<title>JavaScript in Textarea</title> </head> <body> <textarea id="codeInput" rows="10" cols="50"></textarea> <button onclick="runCode()">Run Code</button> <script> function runCode() { const ...
当用户在TextArea中输入文本并提交表单后,这些数据会被发送到服务器。在JSP中,我们可以使用请求对象(`HttpServletRequest`)来获取这些数据。JSP提供了内置的`request`对象,它是`HttpServletRequest`的一个实例...
在网页设计中,`textarea`元素常用于收集用户的大段文字输入,如评论、留言等。然而,有时候我们需要对用户输入的字符数进行限制,防止过长的文本影响页面布局或数据库存储。本文将深入探讨如何实现对`textarea`文本...
HTML5中新增了一些标签,如`<article>`、`<aside>`、`<audio>`、`<canvas>`、`<video>`等,同时也废弃了一些标签,如`<applet>`、`<basefont>`等。 HTML标签是网页开发的基础,熟悉这些标签的用途和功能是开发网页...
- <header>、<footer>、<article>、<section>、<aside>、<nav>:用于定义文档的不同部分,有助于改善可访问性和SEO。 5. HTML5新增标签: - <audio>、<video>:分别用于嵌入音频和视频。 - <canvas>:用于画布和...
HTML的基本语法是,HTML标签必须由<>包裹,HTML标签一般成对出现,分为开始/开放标签和结束/闭合标签,也称容器。标签与标签之间可以嵌套,但必须正确的嵌套。HTML标签不区分大小写。 HTML的基本结构是:<html>为根...
`<b>`和`<i>`用于加粗和斜体,`<font>`控制文字颜色和大小,`<marquee>`实现滚动文字,`<hr>`添加水平线,`<ul>`和`<li>`创建无序列表,`<a>`定义超链接,`<table>`创建表格,`<input>`、`<textarea>`和`<select>`...
在HTML(超文本标记语言)中,`<textarea>`元素是一个非常重要的组成部分,它用于创建一个多行文本输入字段,允许用户输入和编辑大量的文本。在网页设计和开发中,`textarea`常用于收集用户反馈、评论、故事或任何...
83、<textarea> 定义 textarea。 84、<tfoot> 定义表格的脚注。 85、<th> 定义表头。 86、<thead> 定义表头。 87、<time> 定义日期/时间。 88、<title> 定义文档的标题。 89、<tr> 定义表格行。 90、<ul> 定义无序...
<td><textarea name="neirong" cols="60" rows="10"></textarea></td> </tr> <tr> <td><input name="submit" type="submit" value="提交留言"></td> <td><input name="reset" type="reset" value="重置留言"></...
表单标签是指在HTML文档中用于定义表单的标签,包括<form>、<input>、<textarea>等标签。 <form>标签用于定义表单。<input>标签用于定义输入控件。<textarea>标签用于定义多行文本输入控件。 七、框架标签 框架...
在网页设计中,`<textarea>`元素用于创建一个多行文本输入区域,用户可以在其中输入大量文本。然而,有时候我们需要对用户能输入的字符数进行限制,以满足特定的需求,例如防止数据库存储过量数据或者保持页面布局的...
* 表单标签:<form>、<input>、<textarea>、<select>、<button> * 表格标签:<table>、<tr>、<td>、<th>、<caption> 此外,本手册还将对 HTML5 的事件属性进行详细的解释,包括 onclick、ondblclick、onmouseover、...
被包围在<pre>元素中的文本通常会保留空格和换行符。 20. <u>:<u> 标签可定义下划线文本。 21. <label>:<label> 标签为 input 元素定义标注(标记) 。 22. <strong>...</strong>粗体字 (强调 ) 23. <em>...</em>...
总结起来,正确使用`<textarea>`标签的语法以及合理配置其属性,结合JavaScript进行后端处理,可以帮助我们有效地管理和控制用户在`textarea`中的输入,从而避免多余的空格和回车。对于需要保持文本格式的应用场景,...