为了账号安全,请及时绑定邮箱和手机立即绑定

TinyMCE的计数器无法正常工作

TinyMCE的计数器无法正常工作

catspeake 2021-05-10 12:14:30
我知道那里有很多解决方案,但无法找到正确的解决方案。我已经在tinyMCE版本3中为自定义计数器编写了代码,该版本的maxlength属性不起作用。我想在计数器达到0时停止提供更多文本setcontent(""),substring(0,maxcount)这似乎是有问题的,因为当我在其修剪后两个字符之间输入任意2个字符时,这种方式不应该这样。我也尝试过使用evt.preventDefault()它的阻止功能,但无法再次输入IN进行击键,而击键也排除了bacspace和delete,但它无法正常工作。这是我的代码。    tinyMCE.init({        mode: "textareas",        theme: "advanced",        editor_selector: "mceEditor",        paste_auto_cleanup_on_paste: 'true',        theme_advanced_disable: 'justifyleft,justifyright,justifyfull,justifycenter,indent,image,anchor,sub,sup,unlink,outdent,help,removeformat,link,fontselect,hr,styleselect,formatselect,charmap,separator,code,visualaid,strikethrough,fullscreen',        theme_advanced_buttons1: 'bold,italic,underline,numlist,bullist,undo,redo,cleanup,spellchecker',        theme_advanced_buttons2: "",        theme_advanced_buttons3: "",        plugins: 'spellchecker,fullscreen,paste',        spellchecker_languages: '+English=en-us',        spellchecker_rpc_url: '<%out.print(request.getContextPath());%>/jazzy-spellchecker',        theme_advanced_statusbar_location: "bottom",        theme_advanced_path : false,        statusbar: true,        setup: function(editor)        {             editor.onKeyUp.add(function(evt)            {                var maxLengthRichTextArea = 5;                 var inputRichTextArea = $(editor.getBody()).text();                 var inputRichTextAreaLength = inputRichTextArea.length;                 var value = maxLengthRichTextArea-inputRichTextAreaLength;                 if(value >= 0)                 {                   $(tinyMCE.activeEditor.getContainer()).find("#"+editor.id+"_path_row").html("Remaining chars: "+(value));                }                              });        }    });</script>的HTML<textarea id="450225" class="mceEditor"  maxlength="10" style="display: none;"></textarea>
查看完整描述

1 回答

?
HUWWW

TA贡献1874条经验 获得超12个赞

这是您要实现的目标的一个有效示例:


HTML:


<textarea id="text"></textarea>

Javascript:


tinymce.init({

  selector: "textarea#text",

  height: 500,

  menubar: false,

  setup: function(editor) {

    var maxlength = 5;

    var allowedKeys = [8, 37, 38, 39, 40];

    editor.on("keydown", function(e) {

      var count = $(editor.getBody()).text().length;

      if(allowedKeys.indexOf(e.which) != -1) {

         return;

      }

      if (count >= maxlength) {

        e.stopPropagation();

        return false;

      }

    });

  }

});

和Codepen,希望对您有所帮助!在我的代码中,最大长度为5,但是您可以通过var进行更改maxlength。


查看完整回答
反对 回复 2021-05-27
  • 1 回答
  • 0 关注
  • 172 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信