数据在保存的时候,替换换行符为

function submitFun(url){

//获取form表单序列化的字符串,对form表单序列化后的样式为:aa=1&bb=1&cc=1的格式,所以这里利用&来分组,并且获得参数名和参数值再替换换行符

var submitDataStr = $(".__saveForm").serialize();

var descriptionEntity = submitDataStr.split("&")[0];

var key = descriptionEntity.split("=")[0];

var value = descriptionEntity.split("=")[1];

if(!value && value==""){

$.easyui.messager.show({ icon: "info", msg: "请在输入框中写入内容!", position: "topCenter" ,timeout:5000});

return;

}

//替换所有的换行符为
保存到数据库(在UTF8中的换行符为%0D%0A,正则后面的g表示所有的匹配的字符串都要替换.使用replace 方法的时候需要用正则表达式,否则只能替换第一个换行

value = value.replace(/%0D%0A/g,"
");

submitDataStr+="&object.description="+value;

//替换原来的"object.description"的参数字符串

var index = submitDataStr.indexOf("&");

submitDataStr = submitDataStr.substring(index+1);

if($(".__saveForm").form('validate')){

$.ajax({

url:url,

data:submitDataStr,

type:"POST",

dataType:'json',

success:function(data){

//服务器成功返回信息,执行success()方法

$.easyui.loaded({ topMost: true });

var obj= data;

if (obj && obj.returnCode==1)

{

$.easyui.messager.show({ icon: "info", msg: "回复提交成功", position: "topCenter" ,timeout:5000});

//每次提交完问题之后不会刷新页面

var flag = false;//默认客户提交

var name = obj.data.userName;

if(obj.managerName){

//客服提交

flag = true;

name = obj.data.managerName;

};

var descriptionStr = obj.data.description;

var imageArr = obj.data.imagelist;

var startTime = obj.data.startTime;

startTime = startTime.replace("T"," ");//格式化日期

//直接插入图片和描述会更好一些,这里选择利用JQUEY追加元素

addDataTbodyToTable(name,descriptionStr,imageArr,startTime,flag);

return;

}

$.easyui.messager.show({ icon: "info", msg: "回复提交失败", position: "topCenter" ,timeout:5000});

},

});

}else{

$.easyui.loaded({ topMost: true });

$(".__saveForm input:eq(0)").focus();

}

}

代码1.(输入回复内容之后,动态的在前台显示刚才输入的内容)

/**

* 增加描述description,传递对象为一个字符串

* @param str 描述字符串

* @param 图片地址构成的数组

* @param 提交日期

*/

function addDataTbodyToTable(name,descriptionStr,imageArr,startTime,flag){

//在显示的时候把
改成换行符显示出来(注意:使用replace 方法的时候需要用正则表达式,否则只能替换第一个换行 )

var reg=new RegExp("
","g"); //创建正则RegExp对象

var newDescriptionStr=descriptionStr.replace(reg,"\n");

var $dom = $('#tbody');

var str = "

";

if(flag){

//是客服

str+="客服--->";

}else{

str+="用户--->";

}

str+= name+":
"+startTime+"
"+newDescriptionStr+"
";

if(imageArr && imageArr.length > 0){

for(var i = 0;i

//注意,这里必须加上单引号,否则不能显示图片

str+="
";

}

}

str+="

";

$dom.before(str);

clearData();

}

代码2.(后台数据在前台显示,使用的是struts2标签的回显)

paleturquoiselemonchiffon">

客服--->:

用户--->:

--%>

"/>

3.在步骤2的中,因为可能存在空格,所以在JS中去处理,代码如下:

$(function(){

//页面加载完成之后,替换
为换行

var reg=new RegExp("
","g"); //创建正则RegExp对象

var $replaceDom = $('.description');

/**

* 替换数据库的
为换行在JSP页面显示

*/

for(var i = 0;i

var replaceStr = $($('.description')[i]).text().replace(reg,"\r\n");

$($('.description')[i]).html(replaceStr);

}

/**

* 注意:如果要删除多个元素要倒着删除,否则会出现错误

*/

//for(var i = $replaceDom.length;i>=0;i--){

//$($('.description')[i]).remove();

//}

});

后端获取的文本换行_前台带换行符的文本提交到后台,后台在前台显示换行相关推荐

  1. kind富文本编辑器_在项目中集成富文本编辑器

    前   言 现在学程序的都离不开 Markdown 语法了吧,Markdown 已经成为典型的转换为HTML的非正式规范和参考实现,现在市场上也出现了许多Markdown实现,在基本语法之上额外增加了 ...

  2. python文本分类_教你用python做文本分类

    什么是文本分类 一个文本分类问题就是将一篇文档归入预先定义的几个类别中的一个或几个.通俗点说,就是拿一篇文章,问计算机这文章要说的究竟是体育,经济还是教育.文本分类是一个监督学习的过程,常见的应用就是 ...

  3. 文本分析软件_十大针对机器学习的文本注释工具与服务,你选哪个?

    房地产和键 [51CTO.com快译]目前,从搜索引擎与情感分析,到虚拟助手与聊天机器人,机器学习应用场景中的许多研究领域,都需要通过文本注释工具与服务来提供准确性.在AI研究与开发行业中,发现或创建 ...

  4. python tensorflow 文本提取_如何在tensorflow中保存文本分类模型?

    阅读tensorflow documentation进行文本分类时,我在下面建立了一个脚本,用于训练文本分类模型(正/负).有一件事我不确定.如何保存模型以便以后重用?另外,如何测试我拥有的输入测试集 ...

  5. 文本匹配_如何又好又快的做文本匹配

    BERT推理速度慢,导致落地困难:找到效果不错,推理速度快的模型是一个方向,ESIM是一个很好的选择: ESIM[1] 推理速度快,效果不错,堪称文本匹配的利器: 对于ESIM,重点掌握就一点:是两个 ...

  6. php微信文本通讯_微信公众号开发之文本消息自动回复php代码

    本文实例为大家分享了php微信文本消息自动回复 别代码,供大家参考,具体内容如下 1.PHP示例代码下载 下载地址1:http://xiazai.jb51.net/201608/yuanma/phpw ...

  7. js 获取元素文本_可能是最全的“文本溢出截断省略”方案合集

    前言 在我们的日常开发工作中,文本溢出截断省略是很常见的一种需考虑的业务场景细节.看上去 "稀松平常" ,但在实现上却有不同的区分,是单行截断还是多行截断?多行的截断判断是基于行数 ...

  8. unity创建纹理_创建带纹理的文本的技术

    unity创建纹理 View demo 查看演示 Download Source 下载源 In this article we're going to explore several techniqu ...

  9. python 写txt 换行_写入txt文本的内容为什么没换行效果?

    PHP把内容写入文件,并每次自动换行 weixin_4089680029712018-07-20 Java文本追加.换行.输出到TXT u01422837514692015-12-15 Android ...

最新文章

  1. CVPR目标检测与实例分割算法解析:FCOS(2019),Mask R-CNN(2019),PolarMask(2020)
  2. DDD China Conference 2017
  3. Deep Learning for Computer Vision with MATLAB and cuDNN
  4. Bootstrap全局css样式_图片,响应式工具
  5. c语言函数官网,c语言函数
  6. linux代替ps的软件,Photoshop的开源替代品 图像编辑器GIMP迎来25岁生日
  7. java 并发容器类实验_Java多线程并发编程中并发容器第二篇之List的并发类讲解...
  8. 当关闭winform窗体时触发
  9. 手把手教你如何进行内网渗透
  10. 软件开发人员的简历项目经验怎么写
  11. Java Eclipse部分图标汇总
  12. SecureCRT8.0破解版安装教程
  13. 北京消费者买15类节能商品可获补贴 单件最高800元
  14. Android和蓝牙GPS结合的方法
  15. play.html文件,playframework – 如何使用play框架渲染一个简单的html页面?
  16. matlab算原函数,matlab中原函数如何求解其中f(x)的导数为(22.05/x)的平方减1再开根号...
  17. TF-IDF的原理概述
  18. java使用cxf调用https方式的webservice
  19. ElasticSearch教程与实战:从搭建服务到Spring Boot整合
  20. 别再说你不会!java嵌入式开发教程

热门文章

  1. ACDU活动回顾:@DBA,前辈指路不迷茫
  2. 结合 Apache Kafka 生态系统,谈谈2018年机器学习五大趋势
  3. 云小课|CDN第5课 CDN入门之—我的网站可以用CDN加速吗?
  4. 毕业季offer怎么拿?收下这份非典型求职面试指南
  5. 让垃圾分类开发“极快致简”的好物件,零基础的开发小白也能轻松驾驭它!
  6. 【华为云技术分享】华为专家亲述:如何转型搞 AI?
  7. 云小课 | MRS和自建Hadoop相比,有哪些优势?
  8. 化鲲为鹏,我有话说 ,鲲鹏ARM架构的优势
  9. 失去循环标记的Python,我这样实现跳出外层循环
  10. 设计模式笔记十七:迭代器模式