Разрыв строки из textarea с добавлением [duplicate]

Примером этого исключаемого исключения является: Когда вы пытаетесь проверить что-то, это null.

Например:

string testString = null; //Because it doesn't have a value (i.e. it's null; "Length" cannot do what it needs to do)

if (testString.Length == 0) // Throws a nullreferenceexception
{
    //Do something
} 

Время выполнения .NET исключение NullReferenceException при попытке выполнить действие над чем-то, что не было инстанцировано, т.е. код выше.

По сравнению с ArgumentNullException, которое обычно выбрано как защитная мера, если метод ожидает, что то, что происходит

Дополнительная информация находится в C # NullReferenceException и Null Parameter .

13
задан Leo 12 December 2011 в 23:50
поделиться

10 ответов

Это проблема CSS, а не проблема с JavaScript. HTML по умолчанию сокращает пробел & mdash; это включает в себя игнорирование новых строк.

Добавить white-space: pre-wrap в выходной div. http://jsfiddle.net/mattball/5wdzH/

Это поддерживается во всех современных браузерах: https://caniuse.com/#feat=css3- TabSize

35
ответ дан Matt Ball 26 August 2018 в 22:45
поделиться
<?php 

//$rsquery[0] is array result from my database query
//$rsquery[0] = 1.1st Procedure \n2.2nd Procedure
//txtRisks is a textarea

//sample1
function nl2br2($string) {
$string = str_replace(array("\r\n", "\r", "\n"), "<br />", $string);
return $string;
}

//sample2
function nl2br2($string) {
$string = str_replace(array("\r\n", "\r", "\n"), "\\n", $string);
return $string;
}

echo "$('#txtRisks').val('".nl2br2($rsquery[0])."')";

?> 

PHP Ручная ссылка

0
ответ дан crazyivan 26 August 2018 в 22:45
поделиться
$( "#watched_textarea" ).keyup( function() {
   $( "#output_div" ).html( $( this ).val().replace(/[\r\n]/g, "<br />") );
});

Вам нужно заменить символы новой строки тегами <br> для вывода HTML.

Вот демо: http://jsfiddle.net/GbjTy/3 /

2
ответ дан Jasper 26 August 2018 в 22:45
поделиться

Усиленные новые строки в текстовых областях \n s, другие теги HTML, чем textarea, будут игнорировать их. Вы должны использовать <br /> для создания новых линий в этих элементах.

Я предлагаю вам использовать JavaScript, чтобы исправить это, а не CSS, поскольку вы уже полагаетесь на JavaScript.

$( "#watched_textarea" ).keyup( function() {
   $( "#output_div" ).html( $( this ).val().replace(/\n/g, '<br />') );
}); 

Вы можете найти обновленную версию здесь: http: // jsfiddle.net/GbjTy/2/

8
ответ дан js-coder 26 August 2018 в 22:45
поделиться

Попробуйте что-то вроде этого:

$( "#watched_textarea" ).keyup( function() {
   $( "#output_div" ).html( $( this ).val().replace('\n', '<br/>') );
}); 

В HTML пробелы по умолчанию игнорируются.

Вы также можете сменить тэг <div> на тег <pre>:

<pre id="output_div"></pre>

И это тоже сработает.

3
ответ дан Mike Christensen 26 August 2018 в 22:45
поделиться

Ваши новые строки выводятся отлично, но HTML игнорирует новые строки: ему нужно <br>.

Используйте простую функцию «новая строка-в-br», например:

function nl2br_js(myString) {
var regX = /\n/gi ;

s = new String(myString);
s = s.replace(regX, "<br /> \n");
return s;
}

$( "#watched_textarea" ).keyup( function() {
       $( "#output_div" ).html( nl2br_js($( this ).val()) );
    }); 

jsfiddle здесь : http://jsfiddle.net/r5KPe/

Код отсюда: http://bytes.com/topic/javascript/answers/150396-replace- все-новая строка-BR-теги

2
ответ дан Nanne 26 August 2018 в 22:45
поделиться

Я нашел более удобный метод с использованием jquery.

samplecode

HTML

    <textarea></textarea>
    <div></div>
    <button>Encode</button>

JS

$('button').click(function() {

    var encoded = $('<label>').text($('textarea').val()).html();//the label element can be replaced by any element like div, span or else

    $('div').html(encoded.replace(/\n/g,'<br/>'))
});
0
ответ дан Nithin Chandran 26 August 2018 в 22:45
поделиться

В случае, когда

  • вы не отображаете .val () текстового поля на другой странице (например, отправьте форму на сервлет и перейдите на другой JSP).
  • с использованием .val () текстового поля как части URL-кодирования (например, mailto: с телом как содержимое textarea) в Javascript / JQuery

, тогда вам нужно URLEncode описание текстового поля следующим образом:

var mailText = $('#mailbody').val().replace(/(\r\n|\n|\r)/gm, '%0D%0A');
2
ответ дан RuntimeException 26 August 2018 в 22:45
поделиться

Существует простое решение: сделайте контейнер с предварительным тегом.

        <textarea id="watched_textarea" rows="10" cols="45">test </textarea>
        <pre class="default prettyprint prettyprinted"><code ><span class="pln" id="output_div">fdfdf</span></code></pre>
        <script>
        $("#watched_textarea").keyup(function() {
            $("#output_div").html($(this).val());
        });
        </script>
1
ответ дан Sanjib Debnath 26 August 2018 в 22:45
поделиться

Я попытался установить значение textarea с jquery в шаблоне blade-сервера laravel, но код был взломан, потому что у переменной были новые строки.

мой фрагмент кода был

$("#textarea_id").val("{{ $php_variable }}");

Я решил свою проблему, изменив свой фрагмент кода, как показано ниже.

$("#textarea_id").val("{{ str_replace(array('\r', '\n', '\n\n'), '\n', $php_variable }}");

, если кто-либо из вас сталкивается с этой проблемой, может принести пользу из этого.

0
ответ дан Sunil Kumar 26 August 2018 в 22:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: