我已经使用ckeditor插件在angularjs中创建了一个应用程序,我已经为ckeditor创建了一个指令,应用程序工作正常,但问题是我需要将最大字符长度设置为50,所以我放{{1但是它不起作用,
任何人都可以告诉我一些解决方案吗
HTML
maxlength="50"
脚本
<div data-ng-app="app" data-ng-controller="myCtrl">
<h3>CKEditor 4.2:</h3>
<div ng-repeat="editor in ckEditors">
<textarea data-ng-model="editor.value" maxlength="50" data-ck-editor></textarea>
<br />
</div>
<button ng-click="addEditor()">New Editor</button>
</div>
答案 0 :(得分:5)
您需要向id
添加textarea
,如下所示:
<textarea data-ng-model="editor.value" maxlength="50" id="mytext" data-ck-editor></textarea>
您需要处理CKEDITOR
的关键事件:
window.onload = function() {
CKEDITOR.instances.mytext.on( 'key', function() {
var str = CKEDITOR.instances.mytext.getData();
if (str.length > 50) {
CKEDITOR.instances.mytext.setData(str.substring(0, 50));
}
} );
};
但是,请注意,内容中也包含html标记,您可能希望保留它们,
答案 1 :(得分:3)
我遇到了同样的问题。我使用CKEditor这个功能基本上模仿了maxlength函数。
window.onload = function() {
CKEDITOR.instances.mytext.on('key',function(event){
var deleteKey = 46;
var backspaceKey = 8;
var keyCode = event.data.keyCode;
if (keyCode === deleteKey || keyCode === backspaceKey)
return true;
else
{
var textLimit = 50;
var str = CKEDITOR.instances.mytext.getData();
if (str.length >= textLimit)
return false;
}
});
};
此功能将检查以确保输入的字符数不超过允许的字符数。
如果是这样,它将返回false,这只是不允许任何更多的输入进入该字段。
如果用户按退格键或删除则会返回true,如果达到内容限制,用户仍然可以更改其内容。