Редактор Монако новая строка в getValue () - PullRequest
0 голосов
/ 12 февраля 2019

Итак, я использую Monaco Editor в качестве большой выделенной синтаксисом текстовой области, которая передается в форме с небольшим количеством JavaScript.Чтобы это произошло, у меня есть тег <input type="text" id="content" name="content" style="display: none;">, и JavaScript подключен к кнопке, которая делает это:

function submitButtonClick(){
  document.getElementById("content").value = monacoeditor.getValue();
  document.getElementById("myForm").submit();
}

Это отлично работает и действительно отправляет форму, однако getValue()Вызовите, чтобы вернуть текст в редакторе Монако без перевода строки.Текст, который выглядит в Монако следующим образом:

#Hello World
*I am some text*

возвращается примерно так:

#Hello World*I am some text*

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

Ответы [ 3 ]

0 голосов
/ 16 февраля 2019

вы должны использовать <input type="hidden" id="content" name="content" style="display: none;">

0 голосов
/ 19 февраля 2019

При извлечении данных из Монако, новые строки будут /n символов.В некоторых ситуациях это не будет работать в одиночку, так как также требуется возврат каретки.

String.replace("\n", "\r\n");

должен решить эту проблему

0 голосов
/ 16 февраля 2019

Проблема в том, что HTML <input type="text"> не поддерживает разрывы строк.Он предназначен для однострочного ввода (представьте имена пользователей, содержащие разрывы строк).

Для многострочного ввода есть тег <textarea>, который является просто элементом формы, как и любой другой.Ваша форма будет выглядеть следующим образом:

<form id="myForm" action="..." method="POST">
    <textarea id="content" name="content" style="display: none;"></textarea>
</form>

Затем вы можете установить значение текстовой области и отправить форму, как вы делали это раньше:

function submitButtonClick () {
    document.getElementById ("content").value = monacoeditor.getValue ();
    document.getElementById ("myForm").submit ();
}
...