首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MaxLength在Codemirror

MaxLength在Codemirror
EN

Stack Overflow用户
提问于 2015-09-30 10:33:10
回答 1查看 1.8K关注 0票数 1

嗨,有没有办法在codemirror v5.5.0中设置字符的最大长度。我试着做以下几件事:

代码:

代码语言:javascript
复制
CMUtils.enforceMaxLength = function(cm, change) {
    var maxLength = cm.getOption("maxLength");
    if (maxLength && change.update) {
        var str = change.text.join("\n");
        var delta = str.length-(cm.indexFromPos(change.to) - cm.indexFromPos(change.from));
        if (delta <= 0) { return true; }
        delta = cm.getValue().length+delta-maxLength;
        if (delta > 0) {
            str = str.substr(0, str.length-delta);
            change.update(change.from, change.to, str.split("\n"));
        }
    }
    return true;
}

html_editor.on("beforeChange", CMUtils.enforceMaxLength);
css_editor.on("beforeChange", CMUtils.enforceMaxLength);
js_editor.on("beforeChange", CMUtils.enforceMaxLength);

但这不管用

P.S .我在代码中编写了maxLength

代码语言:javascript
复制
var html_editor = CodeMirror.fromTextArea(document.getElementById("html"), {
    lineNumbers: true,
    indentWithTabs: false,
    indentUnit: 2,
    autoCloseTags: true,
    theme: 'dracula',
    maxLenght: 25,
    mode: {
        htmlMode: true,
        name: "xml"
    }
});

更新1我的控制台说没有定义CMUtils。我该怎么定义它?

EN

回答 1

Stack Overflow用户

发布于 2015-11-08 06:15:25

我想说的是,CMUtils格斯皮纳为自己的工作创建的东西。有几种方法可以使用该函数,这取决于您希望函数的作用域。

如果事先添加了以下内容,则当前编写它的方式可以工作:

代码语言:javascript
复制
window.CMUtils = window.CMUtils || {};

CMUtils.enforceMaxLength = function(cm, change) { //.....

或者,为了保持函数的私有性,将第一行替换为:

代码语言:javascript
复制
var enforceMaxLength = function(cm, change) {

不要忘记在"maxLength"编辑器上设置选项CodeMirror

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32863884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档