Summernote 所见即所得编辑器在代码视图中保存不工作 js/jquery

Summernote wysiwyg editor save in codeview not working js/jquery

我正在使用 Summernote 作为所见即所得的编辑器,但我遇到了一个问题。我的大部分文本编辑都是在代码视图中进行的,问题是如果您在代码视图中提交表单,编辑的文本不会被保存。

出于某种原因,我需要在代码视图和所见即所得视图之间切换以保存编辑的文本。有人知道如何解决这个问题吗?

我看过这个 Not saving content while in code view? #127 但它对我不起作用。

这是我的代码。

$(document).ready(function() {
    $('#desc').summernote({
        height: 1000,                 // set editor height
        minHeight: null,             // set minimum height of editor
        maxHeight: null,             // set maximum height of editor
        focus: true,                  // set focus to editable area after initializing summernote
        codemirror: {
          mode: 'text/html',
          htmlMode: true,
          lineNumbers: true,
          theme: 'monokai'
        },
        callbacks: {
          onBlur: function() {
            //should probably do something here
          },
          onInit: function() {
            console.log('Summernote is launched');
            $(this).summernote('codeview.activate');
          }
        }
    });
});

如有必要,这里是html。

<textarea name="desc" id="desc" class="form-control" rows="40"></textarea>

尝试做这样的事情。

$(document).on("submit","#my-form-name",function(e){
    $("#desc").val($('#desc').code());
    return true;
});

$(document).on("submit","#my-form-name",function(e){
    if ($('#desc').summernote('codeview.isActivated')) {
        $('#desc').summernote('codeview.deactivate'); 
    }
});

这会将 summernote 的代码值复制到文本的值中

$(#desc).on('summernote.blur.codeview', function() {
    $(#desc).val($(desc).summernote('code'));
});

看起来使用 onblur 回调也可以工作:https://summernote.org/deep-dive/#initialization-options

   $($('.summernote').closest("form")).on("submit",function(e){
        if ($('.summernote').summernote('codeview.isActivated')) {
            $(".summernote").val($('.summernote').summernote());
            return true;
        }
        return true;
    });

    $($('.summernote').closest("form")).on("submit",function(e){
        if ($('.summernote').summernote('codeview.isActivated')) {
            $('.summernote').summernote('codeview.deactivate'); 
        }
    });