<textarea id="ta" name="ta"></textarea> 
    <div id="html"></div>
    <input id="Button2" onclick="return r();" type="button" value="转换" />
     <script>
         function r() {  
            var ta = document.getElementById("ta").value;
            ta = ta.replace(/\r\n/ig, "<br />");
            alert(ta);
            document.getElementById("html").innerHTML = ta;
         }
     </script>想要把textarea 控件中的换行符JS换成<br />再插入数据库。
但是为什么点了转换之后,id="html" ff下不换行IE下是对的。ALERT倒是换行的。如何兼容求教

解决方案 »

  1.   

    ta = ta.replace(/\r\n/ig, "<br />");
    改成ta = ta.replace(/\n/ig, "<br>");
      

  2.   

             function r() {  
                var ta = document.getElementById("ta").value;
                ta = ta.replace(/\n/ig, "<br />");
                alert(ta);
                document.getElementById("html").innerHTML = ta;
             }
    一个\n就行了
      

  3.   

    ta.replace(/\r\n/ig, "<br />");去掉 \r
      

  4.   

    谢谢以上各位,我试了可以了。
    现在追加一个问题。
    段前的空格写入数据库后提取出来,空格不见了。如何把空格都换成&nbsp;下面我试了好象不行。
    ta = ta.replace(/^(\s{2})$/ig, "&nbsp;");
      

  5.   

    ta = ta.replace(/\s+/ig, "&nbsp;");应该是不能^$
      

  6.   

    你这样是把所有的空格换为一个。
    我是想两个空格,即一个中文字换一个&nbsp;
      

  7.   

     ta = ta.replace(/\s{2}/ig, "&nbsp;");
    这样改了后可以了。谢谢,呵
      

  8.   

    仁兄啊textarea是直接用value,别用innerHTML。用value无需转换。
      

  9.   

    晕,你能保证,就一定是两个空格
    万一,要是多了一个呢。
    还是:ta = ta.replace(/\s{2,}/ig, "&nbsp;");
    这样吧。
      

  10.   

    GG啊。你没看清楚
    我读取TEXTAREA是value,但写入一个DIV才用innerHTML
      

  11.   

    好了。这个事情搞定了,谢谢参与的大哥。回者有分。呵呵。THANKS