遇到错误的袭击,

错误出现,使用jquery中ajax进行查询数据时执行完以后,需要把数据封装成为JSON类型的数据,并传递到前台去的时候出现Invalid JSON 错误,经查找后发现是在使用textarea文本域进行数据获取并插入到数据库的时候插入了一个回车符号,在获取到以后进行了传递,但是 JSON传值的时候,如果有回车符就会挂掉,需要对其进行处理

JSON 处

使用到的工具jsonlint可以检测出json数据是否正确。

http://jsonlint.com/

经检测后返现在这里出现了换行动作。

追溯到根源,在使用textarea时没有设置 虚拟换行属性 在输入时导致把换行符录入到数据库中,从而使数据再次查出并使用JSON传递时出现了格式错误的问题。

问题处理:

把已坏的数据进行手工处理,并在textarea中添加上wrap属性。

后又经过测试,textarea 的属性warp="virtual" 这个属性并没有想象中的那么强大,当遇到用户自己手动输入回车/r/n的时候其实还是会挂掉的:

1.首先对于包含\r\n的数据提交可以使用post方法进行提交,这样可以不影响提交时内容的解析,使用get方式会有问题,本身也不提倡使用get方式发送请求,如果非要用get,请使用escape进行处理

2.对于包含\r\n字符串的显示和读取的处理办法,最简单的办法,使用xml方式进行解析,就不会存在任何问题,包括一些特殊字符的问题,如果不使用xml方式进行解析,而使用json解析,虚拟回车换行不经任何处理是没有任何问题的,但人为的包含\r\n的内容就会产生问题,此时的解决办法比较麻烦。。。。

$.post(url,
{
},
function(data,status){
if(status=="success"){
data = data.replace(/^[\r\n\s]*|[\r\n\s]*$/g, "");// 表示去掉开头和结尾的回车、换行和空格
data = data.replace(/[\r\n]/g, "<br>");//将json中的所有回车换行替换为<br>
}
} )

data = data.replace(/^[\r\n\s]*|[\r\n\s]*$/g, "");// 表示去掉开头和结尾的回车、换行和空格

data = data.replace(/[\r\n]/g, "<br>");//将json中的所有回车换行替换为<br>

$("#YL").val(obj.yl.replace(/<br>/g, "\r\n"));//在为文本域赋值时,再将<br>替换回来

如果直接在页面上显示内容,则无需替换回来,但不要加pre预处理标签了。。。。。。。。。。

如果本身的json字符串就包含正常的回车换行,也会被替换掉,所以回传的json字符串不能包含为了阅读方便而在程序中认为添加的回车换行

JSON 传值 textarea中虚拟换行功能的更多相关文章

  1. textarea 中的换行符问题

    下面是我对这个问题的解决过程,最后算是完全搞懂了,真是阴沟里险些翻船 1.必须知道textarea中的换行符是 \n  (个人检测发现按回车键是\n,好像在linux下是\r\n) 2.用nl2br之 ...

  2. HTML 解析 textarea 中的换行符

    用户在textarea中输入的换行符,传到后台,再返回前端,展示在div中. 如果需要div显示为与textarea 一致的效果,需添加: .detail { white-space: pre-lin ...

  3. 由一个项目需求引发的 - textarea中的换行和空格

    当我们使用 textarea 在前台编辑文字,并用 js 提交到后台的时候,空格和换行是我们最需要考虑的问题.在textarea 里面,空格和换行会被保存为/s和/n,如果我们前台输入和前台显示的文字 ...

  4. php过滤textarea 中的换行符问题

    之前我写的替换代码是这样的 $content = str_replace('\r\n', '', $_POST['content']); 为了确保window和Linux的换行符都能去掉,改成这样的: ...

  5. textarea 中的换行符

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. json中含有换行符'\r','\n'的处理

    一.josn简易说明  json是一种轻量级的数据交换格式,是一系列格式字符串.在数据交换中,经常会使用到,具有易读性,轻量级.很多地方会使用到,用处广泛.如下:(截取的一段json体) " ...

  7. 关于textarea中换行、回车、空格的识别与处理

    需求:在textarea中输入文字,提交给后台后,后台输出在另一个页面,文字按原格式显示.   问题:如何还原输入框中的换行和空格? 兼容性:IE9以上.FF.chrome在换行处匹配/\n/     ...

  8. jquery处理textarea中的手动换行

    textarea的手动换行会产生换行标志,但这个标志存在却看不到,存入数据库中后读出来显示在页面上却不会换行,如何处理呢? 网上众说纷纭,经过测试用 textarea的内容.replace(/\n/g ...

  9. 微信小程序-textarea中的文本读取以及换行问题

    今天客户那边要求textarea中输入的问题可以按回车键换行,而我使用的是bindinput获取值,但是呢bindinput 处理函数的返回值并不会反映到 textarea 上,按回车键导致点击换行符 ...

随机推荐

  1. Mahout快速入门教程

    Mahout 是一个很强大的数据挖掘工具,是一个分布式机器学习算法的集合,包括:被称为Taste的分布式协同过滤的实现.分类.聚类等.Mahout最大的优点就是基于hadoop实现,把很多以前运行于单 ...

  2. apt软件包管理

    apt软件包管理 ----   http://wiki.ubuntu.org.cn/UbuntuHelp:AptGet/Howto/zh APT HOWTO  ----    http://www.d ...

  3. 利用Azure高级存储搭建高性能Linux服务器(2)

    我们首先来测试随机写的IOPS,可以看到随机写的IOPS可以达到,顺序写的IOPS可以达到: $ sudo fio -filename=/data/testfile -direct=1 -iodept ...

  4. Nlog从下载到使用例子

    第一.首先下载nlog.dll 下载地址:http://pan.baidu.com/s/1i3DQsV7 第二.添加nlog.ll的引用 第三.代码 private static Logger log ...

  5. IOS 项目问题总结

    把自己项目中遇到的问题总结一下,供大家参考,希望大家多多提出意见!! 在Xcode 6.2中遇到Your build settings specify a provisioning profile w ...

  6. UIAppearance使用详解-备

    iOS5及其以后提供了一个比较强大的工具UIAppearance,我们通过UIAppearance设置一些UI的全局效果,这样就可以很方便的实现UI的自定义效果又能最简单的实现统一界面风格,它提供如下 ...

  7. apache服务器参数设置

    全局参数设置 ServerRoot:服务器根目录 apache安装目录[我的为:/usr/local/apache/] 用于指定apache服务器的配置文件及日志文件存放的根目录.服务器的基础目录,a ...

  8. 在Struts2中集成Spring详细讲解

    Spring的官方定义是:一个轻量级的IoC和Aop容器框架,它使用了一种叫做依赖注入的技术. 所谓依赖注入,就是指将创建对象以及协议依赖对象之间合作的责任从对象自身中转移到"工厂" ...

  9. lazy load 图片延迟加载 跟随滚动条

    http://plugins.jquery.com/lazyload/ Jquery.LazyLoad.js插件参数详解: 1,用图片提前占位 placeholder : "img/grey ...

  10. Largest Rectangle in Histogram 解答

    Question Given n non-negative integers representing the histogram's bar height where the width of ea ...