JQuery如何在CodeMirror中更改textarea的字符串值

时间:2015-03-02 23:09:16

标签: javascript jquery codemirror

我试图动态更改textarea的字符串值。在我的代码setValue函数应该这样做,但每当我尝试,文本区域正在改变但后来不可编辑。 什么可能导致问题?

   function createScriptPanel(value, container, mode) {
        var scriptPanel = $('<div id="editor"><textarea id="editor-code">' + value.script + '</textarea></div>').appendTo(container);
        CodeMirror.commands.autocomplete = function (cm) {
            CodeMirror.showHint(cm, CodeMirror.hint.anyword);
        };
        sincapp.codeEditor = CodeMirror.fromTextArea(document.getElementById("editor-code"), {lineNumbers: true, matchBrackets: true, extraKeys: {"Ctrl-Space": "autocomplete"}, mode: mode});
        scriptPanel.getValue = function () {
            return sincapp.codeEditor.getValue();
        };
        scriptPanel.setValue = function (newName,oldName) {

           var newValue= sincapp.codeEditor.getValue().replace(newName,oldName);

           $('#editor:nth-child(1)').html(newValue);
        };

        return scriptPanel;
    }

3 个答案:

答案 0 :(得分:0)

因为你正在调用html而不是val 而不是$('#editor:nth-​​child(1)')。html(newValue); 说$('#editor:nth-​​child(1)')。val(newValue);

答案 1 :(得分:0)

不是关于textarea而是关于CodeMirror,我的错误。实际上这对我来说非常简单:

 sincapp.codeEditor.setValue(newValue)

答案 2 :(得分:0)

尝试这样的事情,

var newValue = sincapp.codeEditor.getDoc().setValue(newName);