如何在Summernotes中禁用编辑?

时间:2015-11-16 14:04:42

标签: jquery summernote

我正在使用summernotes组件,我想要做的是如果s(他)超过2000个Chars我想阻止用户添加字符但是我无法弄清楚如何停止输入事件。

我正在做的事情如下:

Authorization: JWT eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InRqYW5hdGkxMUBnbWFpbC5jb20iLCJleHAiOjE0NDc2NzYxNDcsInVzZXJfaWQiOjEwOSwidXNlcm5hbWUiOiJwcDEiLCJvcmlnX2lhdCI6MTQ0NzY3MzE0N30.ImkGmK9_TNU5lCvcGzgNi-1XS_Q4c_AxHSnJOcjn6O8

任何想法如何做到这一点,我不想禁用光标或破坏夏令营..我想让用户感觉他仍然可以编辑但它不会输入如果文本超过2000个字符,那就是任何事情。

谢谢!

3 个答案:

答案 0 :(得分:10)

从他们的官方文件中查看this link

基本上,您需要做的是:

您可以通过API禁用编辑器。

$('#summernote').summernote('disable');

如果您想再次启用编辑器,请使用enable调用API。

$('#summernote').summernote('enable');

现在,您可以做的是,在您自己的代码逻辑/算法中使用这些API调用来获得所需的效果。

我知道这是一个老问题,但希望这会有所帮助。

答案 1 :(得分:3)

我知道这是一个老问题,但你可以使用你的容器找到下一个“.note-editable”'并设定其'contenteditable'属性为false。为我工作。

$('#summernote').next().find(".note-editable").attr("contenteditable", false);

答案 2 :(得分:0)

您应该使用内置方法来执行此操作:

$("#target").summernote("disable");

要重新启用它,请使用:

$("#target").summernote("enable");

但是,禁用版本也会禁用代码视图按钮,这对我来说没有意义。为什么用户无法查看(不编辑)代码?我们谈论的是禁用版本,与代码无关。

所以这是我的解决方法:

function disableSN(){
    $("#target").summernote("disable");

    // Enables code button:
    $(".note-btn.btn-codeview").removeAttr("disabled").removeClass("disabled");

    // When switching from code to rich, toolbar buttons are clickable again, so we'll need to disable again in that case:
    $(".note-btn.btn-codeview").on("click", codeViewClick);

    // Disables code textarea:
    $("textarea.note-codable").attr("disabled", "disabled");
}

function enableSN(){
    // Re-enables edition and unbinds codeview button eventhandler
    $("#target").summernote('enable');
    $(".note-btn.btn-codeview").off("click", codeViewClick);
}

function codeViewClick(){
    // If switching from code view to rich text, disables again the widget:
    if(!$(this).is(".active")){
        $("#target").summernote("disable");
        $(".note-btn.btn-codeview").removeAttr("disabled").removeClass("disabled");
    }
}

请将上面代码中的#target选择器替换为附加了summernote小部件的选择器。