You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何限制用户在Summernote文本框中输入字符?

解决Summernote编辑器预填充后禁止输入的问题

你的现有代码存在几个问题:

  • 仅拦截了字母按键,数字、符号、删除/退格等可修改内容的按键未处理
  • e.KeyCode 存在大小写错误,应为 e.keyCode
  • 使用e.target.blur()会导致编辑器失焦,体验不佳

以下是两种可靠的实现方式:

方式一:拦截所有输入类操作

通过回调阻止按键输入、粘贴等行为,保留编辑器原有外观但禁止内容修改:

$(document).ready(function() {
  $('#summernote').summernote({
    callbacks: {
      onKeydown: function(e) {
        // 阻止所有可修改内容的按键默认行为
        e.preventDefault();
      },
      onPaste: function(e) {
        // 阻止粘贴内容
        e.preventDefault();
      }
    }
  });

  // 禁用右键菜单,防止右键粘贴
  $('#summernote').on('contextmenu', function() {
    return false;
  });
});

方式二:设置为只读模式

更彻底的方案,直接将编辑区域设为不可编辑,还可隐藏工具栏避免误操作:

$(document).ready(function() {
  $('#summernote').summernote({
    disableDragAndDrop: true,
    toolbar: [] // 隐藏工具栏
  });

  // 设置预填充内容
  $('#summernote').summernote('code', '<p>这里是预填充的内容</p>');
  // 标记编辑区域为只读
  $('.note-editable').attr('contenteditable', 'false');
});

内容的提问来源于stack exchange,提问作者Wizard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 02:25:38