摩纳哥getValue()中的编辑器换行符

时间:2019-02-12 16:54:24

标签: javascript html forms newline monaco-editor

因此,我将Monaco编辑器用作语法突出显示的大型文本区域,该文本区域以带有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 :(得分:0)

问题是HTML的<input type="text">不支持换行符。它用于单行输入(想象中的用户名包含换行符)。

对于多行输入,有一个<textarea>标记,它只是一个表单元素,与其他任何元素一样。您的表单将如下所示:

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

然后您可以像以前一样设置textarea的值并提交表单:

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

答案 1 :(得分:0)

您应该使用<input type="hidden" id="content" name="content" style="display: none;">

答案 2 :(得分:0)

从摩纳哥提取数据时,换行符为/n个字符。在某些情况下,这不能单独使用,因为还需要回车。

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

应解决此问题