专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

easyui textarea回车导致datagrid 数据无法展示的问题

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/2/14 0:12:25       共计:3617 浏览

textarea换行

在easyui中的datagrid中使用行内编辑时textarea的换行保存到mysql数据库为\n
在textarea中输入回车符 在js读取textarea中的值有\r\n然后到业务层转换到string中就有可能变成空格形式然后被存入数据库,当在取出此值的时候则会变成空格的形式,因此我们需要将不显示的\r\n替换一下。

在js取textarea的时候:

如果用

var str = document.getElementById("textarea").value; 
str = str.replace("\r\n","<br>"); 

则只会将第一个\r\n替换成<br>,如何将所有n个\r\n替换成<br>呢?难道要无限个replace吗?

其实不用,replace可以和正则表达式结合,一次替换所有的\r\n。

var reg=new RegExp("\r\n","g"); 
str= str.replace(reg,"\r\n"); 

这样str中所有的\r\n就替换成<br>了.然后可以将其存入数据库。

在取出的时候 只用将值在替换回来即可

var reg=new RegExp("<br>","g"); 
stt= str.replace(reg,"\r\n"); 
document.getElementById("textarea").value=str; 

更加详细的分析和应用可以参考JavaScript的replace方法与正则表达式结合应用讲解 

下面是我写的2个函数 直接放到通用包中 以后使用可以替换

function replaceTextarea1(str){
var reg=new RegExp("\r\n","g"); 
var reg1=new RegExp(" ","g"); 

str = str.replace(reg,"<br>"); 
str = str.replace(reg1,"<p>"); 

return str; 
}


function replaceTextarea2(str){
var reg=new RegExp("<br>","g"); 
var reg1=new RegExp("<p>","g"); 

str = str.replace(reg,"\r\n"); 
str = str.replace(reg1," "); 

return str; 

 2. html中通<textarea>标签提交的内容会将回车转变成"\r\n",再将提交的内容放入<textarea>标签中显示时,回车符会还原成正常的换行。

但当带有"\r\n"的字符串放在html的普通文本域中显示时 ,原来的换行效果会转变成空格,因此,需要在显示前将字符串中的"\r\n"替换为"</br>"。

另 外,还有一点需要注意:EL表达式会将"</br>"换行符转变成"&lt;/br&gt;","&lt;" 和"&gt;"分别对应"<"和">",也就是说,到了页面上,还是显示为"</br>"(呵呵,EL的智能化程度太高 了),为了补救这一点,需要使用jsp标签(<%= %>)来进行显示。

所以当需要在普通文本域中显示由<textarea>提交的内容时,可以直接在数据库里存储不经过处理的字符串,而只在显示前将"\r\n"替换为"</br>",然后在页面上使用<%= %>来显示这些内容.



3. 如果将通过textbox提交到数据库中的空格和回车正确显示出来
public   string   MyReplace(string   mystr)   
  {   
  if(mystr   ==   null   ||   mystr   ==   ""   )   
  {   
  return("&nbsp;");   
  }   
  else   
  {   
  mystr   =   mystr.Replace("\n\r","<br>");   
  mystr   =   mystr.Replace("\r","<br>");   
  mystr   =   mystr.Replace("\t","  ");   
  return(mystr);   
  }   
  }

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:设置SELECT2输入的宽度(通过角-UI指令) | ·下一条:SVN-工作副本已经锁定错误的解决方法

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有