CodeMirror在编辑器textarea上使用jQuery .keyup

时间:2014-06-28 09:11:17

标签: javascript jquery textarea codemirror onkeyup

我想在keyup上获取Codemirror编辑器的值,但它不起作用。 这是the fiddle

var mixedMode = {
        name: "htmlmixed",
        scriptTypes: [{matches: /\/x-handlebars-template|\/x-mustache/i,
                       mode: null},
                      {matches: /(text|application)\/(x-)?vb(a|script)/i,
                       mode: "vbscript"}]
      };
      var editor = CodeMirror.fromTextArea(document.getElementById("HTML"), {mode: mixedMode,lineNumbers: true  });

$(document).ready(function(){
  $("#HTML").keyup(function(){
    html = editor.getValue();
    alert(html);
    });
}); 

2 个答案:

答案 0 :(得分:2)

CodeMirror隐藏textarea元素,用于监听编辑器实例的事件,您可以使用on方法:

$(document).ready(function () {
    editor.on('change', function () {
        html = editor.getValue();
        alert(html);
    });
});

您可以在CodeMirror手册中找到支持的事件列表。

http://codemirror.net/doc/manual.html#events

答案 1 :(得分:1)

editor.on("keyup", function(cm, event) {
    //only show hits for alpha characters
    if(!editor.state.completionActive && (event.keyCode > 65 && event.keyCode < 92)) {
        if(timeout) clearTimeout(timeout);
        var timeout = setTimeout(function() {
            CodeMirror.showHint(cm, CodeMirror.hint.clike, {completeSingle: false});
        }, 150);
    }
});

使用您使用的任何提示模式替换'CodeMirror.hint.clilke':)