2011-01-25 6 views
4

テキストエリアに書かれたテキストをpreタグにコピーしようとしています。 しかし、私が望むだけの改行を導入することはできません。たとえば、Enterキーを1回押すと、改行が作成されますが、Enterキーを2回以上押すと、複数回改行することはできません。なぜこれが起こるのか、それをどうやって修正できるのか知っていますか?HTML - プレタグの行を中断する

コードはかなりこのように書き:

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

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

テキストエリアのIDが#areaで、preタグのidが#PRE

+0

PREタグにコピーしようとしています。 – antonis

+0

こんにちは - コメントを追加するのではなく、質問の詳細を編集するのに「編集」ボタンを使用できます。 – Rup

+0

具体的にすることができますか?例の中で何を起こしたいのか、コードを含めるのか、あなたが観察しているものを正確に含めるか? –

答えて

0

であるあなたは

$('#pre').html(newText); 
をやってみました代わりに

?これが機能しない場合、それは私があなたのために働くかもしれないスタックオーバーフロー、 にここに同様の質問にいくつか答えを見つけた、\n

アウト.textストリップいる可能性があります。しかし、それはあなたが改行を検出し、それらを置き換えではなく、大きな関数を記述するために持っているので、痛みのようなものだ:

//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でこの問題を抱えていました。プレタグ内に1つ以上の改行が表示されることはありません。

関連する問題