2016-05-19 11 views
0

このトピックに触れるより古い質問がいくつかありますが、私が働いているところでコードが蹴られていないようなWebフォームを扱っていません。ckediterテキストボックスに文字数を制限する

rtfデータを収集する必要があるASP.NET Webフォームアプリケーションでは、rtf入力を許可するためにckeditorでいくつかのフィールドを有効にしました(htmlとして保存されています)。これらのフィールドのいくつかでは、入力を制限する手段が必要です。フォーム/テーブルに制限する

要素:あなたがeditor "key" eventを使用すると、エディタの体のテキストの長さを確認することができます

</script> 
<script type="text/javascript"> 
$(function() {    
     $("[id$=ResponseA]").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 = $("[id$=ResponseA]").getData(); 
       if (str.length >= textLimit) 
        return false; 
      } 
     });  
    }); 
</script> 

答えて

1

:javascriptの文字の制限のためのコードブロック

<tr> 
    <td> 
     <asp:Label ID="LabelResponseA" runat="server">Response A</asp:Label> 
    </td> 
    <td> 
     <asp:TextBox ID="ResponseA" Columns="50" Rows="2" TextMode="MultiLine" 
      runat="server" CssClass="ckeditor"></asp:TextBox> 
     <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" 
      Text="* Response A Required" ControlToValidate="ResponseA" 
      SetFocusOnError="true" Display="Dynamic"></asp:RequiredFieldValidator> 
    </td> 
</tr> 

。お使いのエディタのテキストエリアがResponseA命名されている場合は

var textLimit = 50; 

CKEDITOR.instances.ResponseA.on('key', function (evt) { 
    if (CKEDITOR.instances.ResponseA.document.getBody().getText().length > textLimit) evt.cancel(); 
}); 

あなたのニーズに合わせて、さらに、この裸の骨の例を拡張することができます。

+0

Atzmon、残念ながらそれは動作しませんが、まだ50を超える文字を受け入れています。 –

+0

私はこれを[vanilla ckeditor開始サンプル](http://docs.ckeditor.com/#!/guide/dev_installation)でテストしました。 )期待どおりに動作します。より多くのコードとckeditorがどのようにインスタンス化されているかを投稿すると、その違いを確認し、特定のシナリオに合ったより正確な関数を提供することができます。 – Atzmon

関連する問題