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


    textarea换行

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

      在js取textarea的时候:

      如果用

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

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

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

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

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

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

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

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

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

    function replaceTextarea1(str){
    var reg=new RegExp(" ","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," "); 
    str = str.replace(reg1," "); 

    return str; 


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

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

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

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



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

  • 相关阅读:
    判断单链表中是否有环,找到环的入口节点的理论证明
    交叉熵代价函数(作用及公式推导)
    C#调用C++、Opencv的Dll
    腾讯机器学习一面面经
    C#调用C++类库的几种方式
    2017年腾讯基础研究笔试感受
    关于开源库或者SDK的文档问题
    卷积神经网络Lenet-5实现
    NULL、0、nullptr 区别分析
    C++中,new/delete和malloc/free的区别
  • 原文地址:https://www.cnblogs.com/lhws/p/3262301.html
Copyright © 2020-2023  润新知