Js 與 TextArea


     當給一個js變量賦值一個有換行的值得時候,就會報錯:

<!DOCTYPE HTML>
<html>
    <head>
        <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
        <script type="text/javascript">            
            $(document).ready(function(){
                var bad = "大家 
                早上好,
                空氣 
                不錯哦";
                     
                $("#p1").html(bad);
            
            });
            
        </script>        
    </head>
    <body>
        <p id="p1"></p>
        <p id="p2"></p>
        <div>
            <textarea id="content"></textarea>
        </div>
    </body>
</html>

比如這段代碼中,bad 變量賦值就出錯了。

什么時候會出現這種賦值呢,那就是從textarea的值存到數據庫之后,然后取出來直接賦值某個js變量的時候就會出現這種情況。

 

那就先從數據存入說起:

textarea雖不是富文本,但是可以多行顯示。比如這樣:

把textarea的值存入數據庫中某個字段,你會看着這個字段中存入的 只有輸入的這幾個字,

看不到其他html標記。但可以看出來 在回車的地方文字之間的距離寬一些,似乎有空格。

 

取值 賦值:

如果在js代碼中直接這樣賦值

var bad = <%=badContent%>

就會出現開頭那個錯誤的賦值,一個多行的文本賦值給一個js變量。

一個可行的辦法是這樣:在頁面上設置一個隱藏域,將后台取的值放到隱藏域中,然后用js/jquery 把這個值取出來,賦值到 js變量上。

(方法來源:http://bbs.csdn.net/topics/310152073

 

然后將該js變量顯示到需要顯示textarea內容的html標簽處。用下面的方式模擬一下,如下所示:

<!DOCTYPE HTML>
<html>
    <head>
        <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
        <script type="text/javascript">            
            
            
            function show()
            {
                var content = $("#content").val();
                $("#p1").html(content);
            }
            
        </script>        
    </head>
    <body>
        <p id="p1"></p>
        <p id="p2"></p>
        <div>
            <textarea id="content"></textarea>
        </div>
        <div>
            <button onclick="show()">顯示內容</button>
        </div>
    </body>
</html>

 

內容雖然顯示但是沒按照預想的一樣顯示,沒有換行。 這是怎么回事?怎么辦呢?

我們看到的那個寬點的空白是空格嗎?不是。是textarea的換行符‘\n’ 而不是'\r\n'

知道了換行符是什么,那接下來就好辦了,把'\n'換成<br/>則就顯示出換行了。

注意使用正則替換可以把所有的換行都替換掉

 

<!DOCTYPE HTML>
<html>
    <head>
        <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
        <script type="text/javascript">            
            
            
            function show()
            {
                var content = $("#content").val();
                var contentformat = content.replace(/\n/g,'<br/>');
                $("#p1").html(contentformat);
            }
            
        </script>        
    </head>
    <body>
        <p id="p1"></p>
        <p id="p2"></p>
        <div>
            <textarea id="content"></textarea>
        </div>
        <div>
            <button onclick="show()">顯示內容</button>
        </div>
    </body>
</html>

 

方法來源:http://www.cnblogs.com/xrwang/archive/2011/04/27/LineBreakInJavascript.html

             http://cjzuo-java-gmail-com.iteye.com/blog/1090174


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM