How to get the value of Codemirror textarea
Asked Answered
P

7

87

I am using Codemirror's plugin for textarea but I am not able to retrieve the value of textarea.

Code:

var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
    lineNumbers: true,
    matchBrackets: true,
    mode: "text/x-csrc"
  });


function showCode()
{
    var text = editor.mirror.getCode();
    alert(text);
}

It is showing the error:

editor.getCode() is not a function.
Penick answered 23/4, 2012 at 17:30 Comment(1)
what does console.dir(editor.morror) and console.dir(editor) show in chrome?Bardo
H
109

Try using getValue() instead of getCode().

Pass in an optional argument into getValue(separator) to specify the string to be used to separate lines (the default is \n).

Hackett answered 23/4, 2012 at 18:7 Comment(2)
is there a way to get a reference to the text without calling getValue()? This function is really slow if you have a lot of text in the editor and it will lock the UI thread.Olivero
Is there a difference between cm.getValue() and cm.doc.getValue()?Davedaveda
H
46

This works fine for me.

editor.getValue()
Homeward answered 28/11, 2013 at 13:54 Comment(0)
H
10

In version 6 assuming you have your EditorView in variable editor then you do:

editor.state.doc.toString()
Halonna answered 15/6, 2022 at 22:51 Comment(1)
the only working answer is thisSmilax
J
6

use your_editor_instance.getValue();

It will work fine because there is no function named with the name getCode() in CodeMirror.

For setting value use your_editor_instance.setValue();

Jensen answered 12/5, 2017 at 13:43 Comment(0)
Q
1

Version: 5

According to the Documentation, you need now to do it like:

doc.getValue(?separator: string) → string

So in this example:

editor.getDoc().getValue("\n")

Quechuan answered 28/1, 2019 at 12:54 Comment(0)
F
1

I know you are using textarea but I hope this code will be useful for others! I have this problem but with article tag, and this is my solution to getting all codes with jquery:

res_array = []
$.each($('article.code-draft span[role="presentation"]'), function(){
    res_array.push($(this).text())
});
console.log(res_array.join('\n'))
Floccule answered 20/3, 2019 at 17:55 Comment(0)
H
0

This works for C++ Selenium instances where you are trying to capture the text returned in a CodeMirror text area:

var myText = this.WebDriver.ExecuteJavaScript<string>("return $editor[0].getValue()");

Where [0] is the index of the code mirror text area in the form.

Hypocoristic answered 1/4, 2021 at 14:3 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.