2011-01-25 31 views
4

我試圖將寫在textarea中的文本(使用jQuery和JS)複製到預標記中。 但是,我不能根據需要引入儘可能多的換行符。例如,如果我按Enter一次,它會起作用,並且我創建一個換行符,但如果我多次按下Enter鍵,則無法獲得多個換行符。你知道爲什麼會發生這種情況,或者我可以如何解決這個問題?HTML - 預標記中的斷行

的代碼都非常喜歡這樣的:

<textarea id="area" rows="5" cols="30"> </textarea> 
<pre id="area2" > </pre> <br/> 

<script> 
newText = $('#area').val(); 
$('#pre').text(newText); 
</script>` 

textarea的ID是#area和預標籤的ID#PRE

+0

我試圖將它複製到PRE標記中。 – antonis 2011-01-25 14:32:08

回答

0

您是否嘗試過做

$('#pre').html(newText); 

取而代之?這可能是.text去掉\n

如果這不起作用,我已經找到了一些類似的問題在這裏堆棧溢出, 這可能適合你的一些答案。然而這是一種痛苦的,因爲你必須寫一個相當大的功能檢測新行並將其替換:

//Based off <textarea id="text" cols="50" rows="5" style="overflow: scroll">This is 
a test sentence, with no newline characters in it, but with an automatically wrapped sentence that spans three lines.</textarea> 
    var words = $("#text").val().split(" "); 
    var cols = $("#text").attr("cols"); 
    var text = ""; 
    var lineLength = 0; 
    for (var i = 0; i < words.length; i++) { 
     var word = words[i]; 
     if ((lineLength + word.length + 1) > cols) { 
      text += "\n"; 
      lineLength = 0; 
     } else if (lineLength > 0) { 
      text += " "; 
      lineLength++; 
     } 
     text += word; 
     lineLength += word.length; 
    } 
    $('#pre').text(text); 
    //Alerts: 
    //This is a test sentence, with no newline 
    //characters in it, but with an automatically 
    //wrapped sentence that spans three lines. 
1

我有這個問題與IE7。它不會在pre標籤中顯示更多的新行。