当给一个js变量赋值一个有换行的值得时候,就会报错:

<!DOCTYPE HTML>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var bad = "大家
早上好,
空气
不错哦"; $("#p1").html(bad); }); </script>
</head>
<body>
<p id="p1"></p>
<p id="p2"></p>
<div>
<textarea id="content"></textarea>
</div>
</body>
</html>

比如这段代码中,bad 变量赋值就出错了。

什么时候会出现这种赋值呢,那就是从textarea的值存到数据库之后,然后取出来直接赋值某个js变量的时候就会出现这种情况。

那就先从数据存入说起:

textarea虽不是富文本,但是可以多行显示。比如这样:

把textarea的值存入数据库中某个字段,你会看着这个字段中存入的 只有输入的这几个字,

看不到其他html标记。但可以看出来 在回车的地方文字之间的距离宽一些,似乎有空格。

取值 赋值:

如果在js代码中直接这样赋值

var bad = <%=badContent%>

就会出现开头那个错误的赋值,一个多行的文本赋值给一个js变量。

一个可行的办法是这样:在页面上设置一个隐藏域,将后台取的值放到隐藏域中,然后用js/jquery 把这个值取出来,赋值到 js变量上。

(方法来源:http://bbs.csdn.net/topics/310152073

然后将该js变量显示到需要显示textarea内容的html标签处。用下面的方式模拟一下,如下所示:

<!DOCTYPE HTML>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script type="text/javascript"> function show()
{
var content = $("#content").val();
$("#p1").html(content);
} </script>
</head>
<body>
<p id="p1"></p>
<p id="p2"></p>
<div>
<textarea id="content"></textarea>
</div>
<div>
<button onclick="show()">显示内容</button>
</div>
</body>
</html>

内容虽然显示但是没按照预想的一样显示,没有换行。 这是怎么回事?怎么办呢?

我们看到的那个宽点的空白是空格吗?不是。是textarea的换行符‘\n’ 而不是'\r\n'

知道了换行符是什么,那接下来就好办了,把'\n'换成<br/>则就显示出换行了。

注意使用正则替换可以把所有的换行都替换掉

<!DOCTYPE HTML>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script type="text/javascript"> function show()
{
var content = $("#content").val();
var contentformat = content.replace(/\n/g,'<br/>');
$("#p1").html(contentformat);
} </script>
</head>
<body>
<p id="p1"></p>
<p id="p2"></p>
<div>
<textarea id="content"></textarea>
</div>
<div>
<button onclick="show()">显示内容</button>
</div>
</body>
</html>

方法来源:http://www.cnblogs.com/xrwang/archive/2011/04/27/LineBreakInJavascript.html

http://cjzuo-java-gmail-com.iteye.com/blog/1090174

Js 与 TextArea的更多相关文章

  1. js操作textarea方法集合

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...

  2. 使用div模拟textarea,实现文本输入框高度自适应(附:js控制textarea实现文本输入框高度自适应)

    一.使用textarea标签进行多行文本的输入有很多限制,比如不能实现高度自适应,会出现难看的滚动条等问题. HTML5中添加了一个新属性contenteditable,该属性可以让input,tex ...

  3. JS获取TextArea和Input的同步值

    在提交表单时,如果只是表单值,用一个form即可,但有时候需要将整个表单一起提交,则可通过以下js实现. <!DOCTYPE html> <html xmlns="http ...

  4. js限制textarea文本框的文字个数

    现在发微博,那个文本框一般只能输入200字好像,再多就会自动删除,要么是提示字数受限,用Js就可实现本功能.今天带来的这个Js限制表单文本 框文字数量的例子,相信有此方面需要的是个不错的参考.为了便于 ...

  5. js控制textarea输入字符串的个数,鼠标按下抬起推断输入字符数

    [Html代码] <table> <tr> <td width="150">短信内容:</td> <td> <te ...

  6. js实现textarea自适应高度

    html结构: <div class="container" id="container"> <div class="text-wr ...

  7. 通过JS控制textarea的输入长度

    废话不多说,直接上代码(因为自己也只是遇到的时候然后上网查到的解决办法,放在此处只是为了方便各位看以及以后再碰到用起来方便) <ul> <li> <textarea ro ...

  8. 工作记录(JS向textarea添加固定内容、通过固定字符将字符串分割为数组)

    第一个是在 textarea 输入框中添加固定的内容. 代码如下: <textarea id="text" cols="30" rows="10 ...

  9. 【分享】 封装js操作textarea 方法集合(兼容很好)。

    请使用下面的btn操作. 虽然你现在看来没什么用,当要用的时候又到处找资料,还不如现在收集一下.         在DOM里面操作textarea里面的字符,是比较麻烦的. 于是我有这个封装分享给大家 ...

随机推荐

  1. hibernate简介(Session,几种状态,方法······等)

    1.Hibernate是什么?          Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数 ...

  2. [转载]中国天气网API

    最近在做个网站要用到天气网的api,在网上找了些参考资料,这篇文章对天气网api的介绍比较详细,所以转载之,谢谢原作者的辛勤劳动和奉献精神. 原文地址:http://g.kehou.com/t1033 ...

  3. 团体程序设计天梯赛-练习集L1-014. 简单题

    L1-014. 简单题 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 这次真的没骗你 —— 这道超级简单的题目没有任何输入. ...

  4. python繁体中文到简体中文的转换

      处理中文字符串遇到了繁体和简体中文的转换,python版: 1.下载zh_wiki.py及langconv zh_wiki.py:https://github.com/skydark/nstool ...

  5. 1027-Quicksum

    描述 A checksum is an algorithm that scans a packet of data and returns a single number. The idea is t ...

  6. WIN7+Ubuntu双系统,win7启动不了

    在网上搜索了下,大多说的是因为重装引起的坏道, 我经过半天的搜索才找到了问题所在,首先看看下面连接的二楼大神给出的解决方案: https://forum.ubuntu.org.cn/viewtopic ...

  7. a标签的link、visited、hover、active的顺序

    a标签的link.visited.hover.active是有一定顺序的,以下是我一直在用的一个顺序,能正确显示四个颜色,我也不知道有没有其他的顺序能正确显示,如果你没办法判断哪个是对的,那就先用这个 ...

  8. highcharts 折线图

    <!doctype html> <html lang="en"> <head> <script type="text/javas ...

  9. Source Insight的应用技巧、宏功能

    目录 1 简介... 5 2 搭建我们的SI环境... 5 2.1 搭建步骤... 5 2.2 说明... 6 3 应用技巧... 6 3.1 初级应用技巧... 6 3.1.1 解决字体不等宽与对齐 ...

  10. Maven学习总结(四)——Maven核心概念

    一.Maven坐标 1.1.什么是坐标? 在平面几何中坐标(x,y)可以标识平面中唯一的一点. 1.2.Maven坐标主要组成 groupId:组织标识(包名) artifactId:项目名称 ver ...