我试图动态更改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;
}
答案 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);