76
votes

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.
6
what does console.dir(editor.morror) and console.dir(editor) show in chrome? - sissonb

6 Answers

97
votes

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).

41
votes

This works fine for me.

editor.getValue()
5
votes

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();

2
votes

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'))
1
votes

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.

0
votes

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")