嗨,有没有办法在codemirror v5.5.0中设置字符的最大长度。我试着做以下几件事:
代码:
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
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。我该怎么定义它?
发布于 2015-11-08 06:15:25
我想说的是,CMUtils是格斯皮纳为自己的工作创建的东西。有几种方法可以使用该函数,这取决于您希望函数的作用域。
如果事先添加了以下内容,则当前编写它的方式可以工作:
window.CMUtils = window.CMUtils || {};
CMUtils.enforceMaxLength = function(cm, change) { //.....或者,为了保持函数的私有性,将第一行替换为:
var enforceMaxLength = function(cm, change) {不要忘记在"maxLength"编辑器上设置选项CodeMirror
https://stackoverflow.com/questions/32863884
复制相似问题