javascript — возврат каретки jquery не сохраняется при отправке в data-attribute

Я пытаюсь сохранить возврат каретки, который находится внутри атрибута данных. Когда атрибут отправляется в index.php, div больше не распознает разрывы строк и выводит весь текст в один большой абзац.

Вот как выглядит HREF с атрибутом:

 <?php

$current .=
($i == 1 && $sformat != 'table' && ( $key != $unique_id || $unique_id == '' ) )?"$count.
<a data-toggle=\"modal\" class=\"open-RestrictModal\" href='#my-restrictModal'
data-description=\"".$row["description"]."\" ">".${$key}."</a></dt>":'';

?>

А вот javascript в index.php, который получает атрибут data и превращает его в переменную javascript, а затем отправляет в модальное окно:

 <script type="text/javascript">
$(document).on("click", ".open-RestrictModal", function () {
var myDescription = $(this).data('description');
$(".modal-body #description").text( myDescription );
});
</script>

Как уже говорилось, проблема в том, что когда он отображается в модальном режиме, больше нет возврата каретки. Мне нужно получить возврат кареты.

Это ближе всего к тому, что я пытался сделать:

http://social.msdn.microsoft.com/Forums/en-US/9131941d-232b-4592-9b13-c0348cf2a83d/how-can-i-send-data-containing-line-break-n-in-jquery- Ajax? форум = скриптовый

Этот тоже:

http://forum.jquery.com/topic/why-does-the-jquery-val-method-strip-carriage-returns-from-a-textarea-value

Пожалуйста помоги.

0

Решение

Вы пытались дать свой #description элемент стиля white-space: pre или похожие?

В противном случае вам придется заменить возврат каретки на разрывы строк HTML: myDescription.replace('\n', '<br>')

Кроме того, я не буду выводить литеральные возвраты каретки в атрибуте HTML (в XML это запрещено, я думаю)

Так что вы должны сделать эту замену в PHP: str_replace("\n", "<br>", $row["description"])

И, наконец, вы не правильно выходите из своего вывода. Что если ваше поле описания содержит символы кавычек " или другие специальные символы HTML? Вы всегда должны использовать соответствующую функцию экранирования, такую ​​как htmlspecialchars(),

2

Другие решения

Других решений пока нет …