如何使用带有 Codemirror 键绑定的 Ctrl+S 提交表单

How to submit a form using Ctrl+S with Codemirror key bindings

我有一个实现了 Codemirror 的基本形式。我想绑定键 Ctrl + S 来提交表单。我找到了 Codemirror 的 Ctrl + S(extrakeys)功能,但我不知道该放什么。

<form action="action.htm" method="post" id="myform">
  <textarea name="editor" id="editor" class="codemirror-area"></textarea>
  <button type="submit">Save</button>   
</form>

<script>
 var editor = CodeMirror.fromTextArea(document.getElementById("editor"), {
    lineNumbers: true,
    autoCloseTags: true,
    setSize: (200,200),
    indentWithTabs: true,
    theme: "default",   
    lineWrapping: true,         
    extraKeys: {
      "F11": function(cm) {
      cm.setOption("fullScreen", !cm.getOption("fullScreen"));
      },
      "Esc": function(cm) {
      if (cm.getOption("fullScreen")) cm.setOption("fullScreen", false);
      },
      "Ctrl-S": function(instance) { 
      saveText(instance.getValue()); },
      }      
     }
   });
 </script>
  1. 如果你想用Codemirror。
 var editor = CodeMirror.fromTextArea(document.getElementById("editor"), {
   lineNumbers: true,
   autoCloseTags: true,
   setSize: (200,200),
   indentWithTabs: true,
   theme: "default",   
   lineWrapping: true,         
   extraKeys: {
     "F11": function(cm) {
       cm.setOption("fullScreen", !cm.getOption("fullScreen"));
     },
     "Esc": function(cm) {
      if (cm.getOption("fullScreen")) cm.setOption("fullScreen", false);
    },
    "Ctrl-S": function(instance) { 
      $("#myform").submit();
    },
  }      
});

或替代方法:

  1. 首先添加jquery库。
  2. 添加此代码后:
jQuery(document).keydown(function(event) {
            if((event.ctrlKey || event.metaKey) && event.which == 83) {
                // Save Function
                $("#myform").submit();
                event.preventDefault();
                return false;
            }
        }
    );

这个更好:)