因此,我将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*
如何确保获得编辑器的内容,包括所有换行符?
答案 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");
应解决此问题