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

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

经检测后返现在这里出现了换行动作。
追溯到根源,在使用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中虚拟换行功能的更多相关文章
- textarea 中的换行符问题
下面是我对这个问题的解决过程,最后算是完全搞懂了,真是阴沟里险些翻船 1.必须知道textarea中的换行符是 \n (个人检测发现按回车键是\n,好像在linux下是\r\n) 2.用nl2br之 ...
- HTML 解析 textarea 中的换行符
用户在textarea中输入的换行符,传到后台,再返回前端,展示在div中. 如果需要div显示为与textarea 一致的效果,需添加: .detail { white-space: pre-lin ...
- 由一个项目需求引发的 - textarea中的换行和空格
当我们使用 textarea 在前台编辑文字,并用 js 提交到后台的时候,空格和换行是我们最需要考虑的问题.在textarea 里面,空格和换行会被保存为/s和/n,如果我们前台输入和前台显示的文字 ...
- php过滤textarea 中的换行符问题
之前我写的替换代码是这样的 $content = str_replace('\r\n', '', $_POST['content']); 为了确保window和Linux的换行符都能去掉,改成这样的: ...
- textarea 中的换行符
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- json中含有换行符'\r','\n'的处理
一.josn简易说明 json是一种轻量级的数据交换格式,是一系列格式字符串.在数据交换中,经常会使用到,具有易读性,轻量级.很多地方会使用到,用处广泛.如下:(截取的一段json体) " ...
- 关于textarea中换行、回车、空格的识别与处理
需求:在textarea中输入文字,提交给后台后,后台输出在另一个页面,文字按原格式显示. 问题:如何还原输入框中的换行和空格? 兼容性:IE9以上.FF.chrome在换行处匹配/\n/ ...
- jquery处理textarea中的手动换行
textarea的手动换行会产生换行标志,但这个标志存在却看不到,存入数据库中后读出来显示在页面上却不会换行,如何处理呢? 网上众说纷纭,经过测试用 textarea的内容.replace(/\n/g ...
- 微信小程序-textarea中的文本读取以及换行问题
今天客户那边要求textarea中输入的问题可以按回车键换行,而我使用的是bindinput获取值,但是呢bindinput 处理函数的返回值并不会反映到 textarea 上,按回车键导致点击换行符 ...
随机推荐
- 设置Toast显示位置
设置Toast显示位置 两个方法可以设置显示位置: 方法一:setGravity(int gravity, int xOffset, int yOffset)三个参数分别表示(起点位置,水平向右位移, ...
- 新浪短链接API接口示例
<?php /** * URL地址长短切换,由sina新浪短链接API生成 * User: chenqt * Date: 2016/8/23 * Time: 18:45 */ class Url ...
- UIP协议栈
UIP协议栈笔记 http://blog.chinaunix.net/uid-23247944-id-2974928.html
- OSharp 学习(一)
OSharp3.0 由郭明峰组织开发,已经相对比较完整,从底层代码开始阅读难度比较大. 故采用自上而下的方式,使用到的时候再完善相关功能.希望通过此教程能够找到志同道合的人. 注:请勿抄袭 请参看OS ...
- Codeforces Round #281 (Div. 2) 解题报告
题目地址:http://codeforces.com/contest/493 A题 写完后就交了,然后WA了,又读了一遍题,没找出错误后就开始搞B题了,后来回头重做的时候才发现,球员被红牌罚下场后还可 ...
- 时刻注意QT与Windows系统的不同(惨痛教训)
其实就一条:WINAPI使用'\',而QT使用'/'.如果程序立刻崩溃的话,是很难看出端倪的,所以要时刻注意...
- 商派shopex
http://www.shopex.cn/48release/shopexsingle_exper.php 在线体验 前台体验:http://demo.shopex.com.cn/485 后台体验:h ...
- Find the Duplicate Number 解答
Question Given an array nums containing n + 1 integers where each integer is between 1 and n (inclus ...
- sae-v2ex 一个运行在SAE上的类似v2ex的轻型python论坛 - 技术讨论 - 云计算开发者社区 - Powered by Discuz!
sae-v2ex 一个运行在SAE上的类似v2ex的轻型python论坛 - 技术讨论 - 云计算开发者社区 - Powered by Discuz! sae-v2ex 一个运行在SAE上的类似v2e ...
- JAX-WS 学习二:基于WEB容器,发布WebService
WebService 的发布通过调用 Endpoint.publish() 方法来启动一个java内嵌的WEB容器来实现的,如果要将WebService部署到一个WEB容器中去,需要使用jax-ws提 ...