<telerik:RadEditor ID=
"RadEditor1"
runat=
"server"
NewLineMode=
"BR"
OnClientLoad=
"LimitCharacters"
OnClientPasteHtml=
"OnClientPasteHtml"
OnClientCommandExecuting=
"commandExecuting"
>
<Content></Content>
</telerik:RadEditor>
<telerik:RadEditor ID=
"RadEditor2"
runat=
"server"
NewLineMode=
"BR"
OnClientLoad=
"LimitCharacters"
OnClientPasteHtml=
"OnClientPasteHtml"
OnClientCommandExecuting=
"commandExecuting"
>
<Content></Content>
</telerik:RadEditor>
<div id=
"counter"
></div>
<script type=
"text/javascript"
>
var
editorList =
new
Object();
var
editorLengthArray = [20, 30];
var
counter = 0;
var
cancelEnter =
false
;
function
isAlphaNumericKey(keyCode) {
if
((keyCode > 47 && keyCode < 58) || (keyCode > 64 && keyCode < 91)) {
return
true
;
}
return
false
;
}
function
commandExecuting(editor, args) {
if
(args.get_commandName() ==
"EnterNewLine"
&& cancelEnter)
args.set_cancel(
true
);
}
function
LimitCharacters(editor) {
editorList[editor.get_id()] = editorLengthArray[counter];
counter++;
editor.attachEventHandler(
"onkeydown"
,
function
(e) {
//console.log(e.keyCode);
e = (e ==
null
) ? window.event : e;
var
maxTextLength = editorList[editor.get_id()];
var
textLength = editor.get_text().length;
if
(isAlphaNumericKey(e.keyCode) || e.keyCode == 13) {
if
(textLength >= maxTextLength) {
//alert('You are not able to type more than ' + maxTextLength + ' symbols!');
$telerik.cancelRawEvent(e);
cancelEnter =
true
;
}
}
});
var
element = document.all ? editor.get_document().body : editor.get_document();
$telerik.addExternalHandler(element,
"paste"
,
function
(e) {
e = (e ==
null
) ? window.event : e;
var
maxTextLength = editorList[editor.get_id()];
textLength = editor.get_text().length;
var
clipboardLength = window.clipboardData.getData(
"Text"
).length;
textLength += clipboardLength;
if
(textLength >= maxTextLength) {
alert(
'You are not able to type more than '
+ maxTextLength +
' symbols!'
);
e.returnValue =
false
;
return
false
;
}
});
}
function
CalculateLength(editor, value) {
var
textLength = editor.get_text().length;
var
clipboardLength = value.length;
textLength += clipboardLength;
return
textLength;
}
function
OnClientPasteHtml(editor, args) {
var
maxTextLength = editorList[editor.get_id()];
var
commandName = args.get_commandName();
var
value = args.get_value();
if
(commandName ==
"PasteFromWord"
|| commandName ==
"PasteFromWordNoFontsNoSizes"
|| commandName ==
"PastePlainText"
|| commandName ==
"PasteAsHtml"
|| commandName ==
"Paste"
) {
var
textLength = CalculateLength(editor, value);
if
(textLength >= maxTextLength) {
alert(
'You are not able to type more than '
+ maxTextLength +
' symbols!'
);
args.set_cancel(
true
);
}
}
}
</script>