Примером этого исключаемого исключения является: Когда вы пытаетесь проверить что-то, это 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 .
Это проблема CSS, а не проблема с JavaScript. HTML по умолчанию сокращает пробел & mdash; это включает в себя игнорирование новых строк.
Добавить white-space: pre-wrap
в выходной div. http://jsfiddle.net/mattball/5wdzH/
Это поддерживается во всех современных браузерах: https://caniuse.com/#feat=css3- TabSize
<?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])."')";
?>
$( "#watched_textarea" ).keyup( function() {
$( "#output_div" ).html( $( this ).val().replace(/[\r\n]/g, "<br />") );
});
Вам нужно заменить символы новой строки тегами <br>
для вывода HTML.
Вот демо: http://jsfiddle.net/GbjTy/3 /
Усиленные новые строки в текстовых областях \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/
Попробуйте что-то вроде этого:
$( "#watched_textarea" ).keyup( function() {
$( "#output_div" ).html( $( this ).val().replace('\n', '<br/>') );
});
В HTML пробелы по умолчанию игнорируются.
Вы также можете сменить тэг <div>
на тег <pre>
:
<pre id="output_div"></pre>
И это тоже сработает.
Ваши новые строки выводятся отлично, но 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-теги
Я нашел более удобный метод с использованием 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/>'))
});
В случае, когда
, тогда вам нужно URLEncode описание текстового поля следующим образом:
var mailText = $('#mailbody').val().replace(/(\r\n|\n|\r)/gm, '%0D%0A');
Существует простое решение: сделайте контейнер с предварительным тегом.
<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>
Я попытался установить значение textarea с jquery в шаблоне blade-сервера laravel, но код был взломан, потому что у переменной были новые строки.
мой фрагмент кода был
$("#textarea_id").val("{{ $php_variable }}");
Я решил свою проблему, изменив свой фрагмент кода, как показано ниже.
$("#textarea_id").val("{{ str_replace(array('\r', '\n', '\n\n'), '\n', $php_variable }}");
, если кто-либо из вас сталкивается с этой проблемой, может принести пользу из этого.