I have an app that I need to limit the amount of characters that can be entered by a customer but I giving them the editor to enter them in WYSIWYG form. I need to be able to give them a counter of the html characters not the typed characters realtime while typing. Can I do that with this module?
2 Answers, 1 is accepted
0
Hi Andrew,
Please, see the following Validator support example which demonstrates how to attach a custom validator to RadEditor and restrict the content length.
Another approach is to use the following code:
Regards,
Rumen
the Telerik team
Check out Telerik Trainer , the state of the art learning tool for Telerik products.
Please, see the following Validator support example which demonstrates how to attach a custom validator to RadEditor and restrict the content length.
Another approach is to use the following code:
| <script type="text/javascript"> |
| var maxTextLength = 30; |
| var messageText = 'You are not able to type more than ' + maxTextLength + ' symbols!'; |
| function isAlphaNumericKey(keyCode) |
| { |
| if ((keyCode > 47 && keyCode < 58) || (keyCode > 64 && keyCode < 91)) |
| { |
| return true; |
| } |
| return false; |
| } |
| function LimitCharacters(editor) |
| { |
| editor.attachEventHandler ("keydown", function (e) |
| { |
| e = (e == null)? window.event : e; |
| if (isAlphaNumericKey(e.keyCode)) |
| { |
| textLength = editor.get_text().length; |
| if (textLength >= maxTextLength) |
| { |
| alert(messageText); |
| 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 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 allowed to enter more that 30 symbols"); |
| args.set_cancel(true); |
| } |
| } |
| } |
| </script> |
| <telerik:RadEditor id="RadEditor1" OnClientPasteHtml="OnClientPasteHtml" OnClientLoad="LimitCharacters" |
| Runat="server"> |
| <Content> |
| </Content> |
| </telerik:RadEditor> |
Regards,
Rumen
the Telerik team
Check out Telerik Trainer , the state of the art learning tool for Telerik products.
0
Jeremy Coenen
Top achievements
Rank 1
answered on 25 Jun 2009, 03:29 PM
There appears to be flaws in this code as it does not count a number of characters that I think should be checked. For example all of the number pad numbers (0-9) are ignored, as well as period,comma, and a host of other relevant characters. Below is my modified version of isAlphaNumericKey
| function isAlphaNumericKey(keyCode) { |
| if ( |
| (keyCode > 47 && keyCode < 58) || |
| (keyCode > 64 && keyCode < 91) || |
| (keyCode > 93 && keyCode < 112) || |
| (keyCode > 185 && keyCode < 193) || |
| (keyCode > 218 && keyCode < 223) |
| ) |
| { |
| return true; |
| } |
| return false; |
| } |
