2016-05-19 9 views
0

Während es einige ältere Fragen gibt, die sich mit diesem Thema befassen, befassen sie sich nicht mit Webforms, wo ich arbeite und der Code scheint nicht zu treten.ckediter equiped textbox einschränkende Anzahl von Zeichen

In einer ASP.NET Web Forms-Anwendung, die RTF-Daten sammeln muss, habe ich mehrere Felder mit CKeditor aktiviert, um RTF-Eingabe (gespeichert als HTML) zu ermöglichen. Bei einigen dieser Felder brauche ich ein Mittel, um die Eingabe zu begrenzen.

Element in der Form/Tabelle eingeschränkt werden:

<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> 

JavaScript-Code-Block für die Einschränkung der Zeichen:

</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> 

Antwort

1

Sie die editor "key" event verwenden und überprüfen Sie die Körpertextlänge des Editors.

Wenn Ihr Redakteur Textbox ResponseA genannt:

var textLimit = 50; 

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

Sie diese nackten Knochen Beispiel erweitern kann weiter an Ihre Bedürfnisse anzupassen.

+0

Atzmon, leider funktioniert das nicht, immer noch akzeptiert Zeichen weit über 50. –

+0

Ich testete dies mit dem [Vanille Ckeditor erste Probe gestartet] (http://docs.ckeditor.com/#!/guide/dev_installation) und es funktioniert wie erwartet. Wenn Sie mehr von Ihrem Code posten und wie ckeditor instanziiert wird, können wir vielleicht den Unterschied sehen und eine präzisere Funktion anbieten, die besser zu Ihrem spezifischen Szenario passt. – Atzmon

Verwandte Themen