textarea文本不换行的问题

textarea里的文本手动加了换行在div里展示的时候还是成一行显示,有两种解决办法

第一种:比较麻烦 但也能实现
利用js正则

<body>
<textarea name="" id="txt" cols="30" rows="10"></textarea>
<input type="button" id="btn" value="点击按钮">
<div id="desc"></div>
</body>
<script>
    var txt = document.getElementById('txt')
    var btn = document.getElementById('btn')
    var desc = document.getElementById('desc')
    btn.onclick = function () {
        var val = txt.value
        val = val.replace(/\r\n/g, '<br/>'); //IE9、FF、chrome
        val = val.replace(/\n/g, '<br/>'); //IE7-8
        val = val.replace(/\s/g, ' '); //空格处理
        desc.innerHTML = val;
    }
</script>

这里写图片描述

第二种:比较简单,几句css属性就可以解决了
首先用pre标签用来展示要显示的文本
但是如果文本在textarea没有换行 那么在pre里也不会换行 而是一直显示可能会超出文本框,这时候只要解决pre超出文本的问题就好了

pre{
 white-space:pre-wrap;
 white-space:-moz-pre-wrap;
 white-space:-o-pre-wrap;
 word-wrap:break-word;
 }

加上这几个属性 就完美解决了。如果文本有换行 pre能换行显示,如果文本没有换行 pre也不会一行显示到底,也会在超出文本框的时候断行。

猜你喜欢

转载自blog.csdn.net/one_girl/article/details/79658477