遇到错误的袭击,

错误出现,使用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. smarty 常用参数

    section的产生是为解决foreach的不足的,与foreach一样,它用于设计模板内的循环块,它较为复杂,可极大程序上满足程序需要,所以在程序中我习惯使用它而不使用foreach,基本原形为:{ ...

  2. mysql函数date_format统计刷选按年月日统计的数据

    /*原型*/ SELECT count(did) AS sum, date_format(releasetime, '%Y-%m-%d') AS releasetime FROM hengtu_dem ...

  3. CSU 1335 高桥和低桥

    开始队友说是线段树,看了看貌似也是,上手敲了个嵌套的线段树,O(nlognlogn)的复杂度果断tle了 TAT 思路:对h[i]排序,对每次涨水退水,先用二分查找,再用一个数组保存当前点之后所有点被 ...

  4. CC2530定时器3的输入捕获中断

    CC2530定时器3的输入捕获中断 使用的是tim3的通道1的输入捕获P1_7口.//GPIO配置成复用功能,同时设置P1_7为输入.void irCaptureGpioInit(void){ P1S ...

  5. wordpress显示多个分类的文章

    显示多个分类下的文章可以这样提取: <?php query_posts(array('posts_per_page'=>10,'orderby'=>'rand','category_ ...

  6. KEIL的宏汇编器A51介绍

    A51是一种具有通用特性和用法的重定位宏汇编器.它与Intel公司的MASM51宏汇编器具有很好兼容性,支持模块化编程,可以方便地与高级语言接口.A51宏汇编器支持汇编伪指令.宏处理指令以及汇编控制命 ...

  7. 搜索Collections元素,用DateFormatSymbols 获得月份

    import java.util.Collections; import java.util.List; import java.text.DateFormatSymbols; import java ...

  8. DELL配置信息

    CPU详情CPU厂商 英特尔CPU (英特尔)Intel(R) Core(TM) i3 CPU M 370 @ 2.40GHzCPU核心数 2CPU默认频率 2400 MhzCPU外频 533 MHz ...

  9. unix c 06

    文件操作 fcntl-> 复制文件描述符/取文件状态/文件锁 文件一系列函数-> access/chmod/truncate/... 目录操作 相关函数:mkdir/rmdir/telld ...

  10. hdu3870-Catch the Theves(平面图最小割)

    Problem Description A group of thieves is approaching a museum in the country of zjsxzy,now they are ...