HTML - разрыв строки в предварительном теге - PullRequest
4 голосов
/ 25 января 2011

Я пытаюсь скопировать (с помощью jQuery и JS) текст, написанный в текстовой области, в предварительный тег.Однако я не могу ввести столько разрывов строк, сколько захочу.Например, если я нажимаю Enter один раз, это работает, и я создаю разрыв строки, но если я нажимаю Enter более одного раза, я не могу получить более одного разрыва строки.Вы знаете, почему это происходит, или как я могу это исправить?

Код выглядит примерно так:

<code><textarea id="area" rows="5" cols="30"> </textarea> 
<pre id="area2" > 
newText = $ ('#area') .val ();$ ('#pre') .text (newText); `

Идентификатор текстовой области - #area, а идентификатор пред тега - # pre

Ответы [ 2 ]

1 голос
/ 09 марта 2011

У меня была эта проблема с IE7. Он не отображает более одной новой строки в пред теге.

0 голосов
/ 26 января 2011

Вы пытались сделать

$( '#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.
...