2012-05-14 4 views
11

Ich habe ein TextArea() - Steuerelement in meiner Ansicht mit Razor Engine implementiert.wie man maxlength für TextAreaFor in View mit dem Rasiermesser-Engine hinzufügen

@Html.TextArea("EventNature",new { style = "width: 200px; height: 100px;" }) 

Wie kann ich das Maxlength-Attribut für dieses Steuerelement festlegen?
Gibt es ein eingebautes Attribut in RazorEngine oder muss ich Skripte verwenden?

+0

Beachten Sie, dass Sie nicht 'TextAreaFor' in Ihrer Frage verwenden ... – gdoron

Antwort

27

Sie können es gerne tun:

@Html.TextArea("EventNature",new { maxlength=50, // or other value 
            style = "width: 200px; height: 100px;" }) 

Seien Sie sich bewusst sein, es ist ein HTML5

maxlength HTML5-Attribut
Die maximale Anzahl der Zeichen (Unicode-Codepunkte), dass der Benutzer kann eingeben. Wenn es nicht angegeben ist, kann der Benutzer eine unbegrenzte Anzahl von Zeichen eingeben.

MDN


Javascript (mit jQuery) Validierung für HTML < 5:

$('#EventNature').keypress(function(){ 
    if (this.value.length >= 10) // allowing you to enter only 10 chars. 
    return false;   
});​ 

DEMO

+0

Thnx ... kann ich Javascript für die Validierung verwenden, wenn es um HTML5 inkompatible Browser Rite geht? – Kamil

+0

@Kamil. Das stimmt, es ist übrigens nicht so schwer. – gdoron

+0

@Kamil. Weißt du wie? – gdoron

-1

Wie kann ich das Maxlength-Attribut für dieses Steuerelement festlegen?

Das maxlength Attribut ist nicht gültig für das Element <textarea>. Das ist keine ASP.NET MVC-Beschränkung. In der HTML-Spezifikation ist dieses Attribut nur für einfache Texteingabefelder definiert. Wenn Sie die Anzahl der Zeichen beschränken möchten, die ein Benutzer in einem Textfeld eingeben könnte, könnten Sie Javascript verwenden.

+0

Es ist nicht wahr. maxlength ist ein HTML5-Attribut. – gdoron

+0

@gdoron. für Rasiermesser ??? –

+0

@ bitoshi.n. Rasierer? es ist nur HTML, Rasierer ist ein Werkzeug, das Ihnen hilft, das HTML zu verursachen. – gdoron

0
<p>Customer Number: @Html.TextBox("SearchString1",null, new {maxlength = 6}) 
<input type="submit" value="Filter" /></p> 

Die oben ist ein Beispiel, das für mich gearbeitet um die maximal erlaubten Zeichen einzuschränken. Die Tipps, die bei Verwendung einer .NET-Umgebung angezeigt werden, sind äußerst hilfreich. (* Notiz, dies ändert nicht physikalisch die Größe des Textfelds)

"SearchString1" = Stringname ----- null = Objektwert ------ neu {maxlength = 6} = Objekt Htmlattributes

+0

Was fügt dies über die bereits angenommene Antwort hinaus? – dove

1

Sie können auch die Länge der Textbox beschränken, wie folgt aus:

<textarea id="EventNature1" maxlength="10"></textarea> 

     OR 
@Html.TexareaFor(m=>m.Name,new{@maxlength="10"}) 
2

Dies funktioniert auch für die TextAreaFor Helfer mit mehr als einem anonymen Typ in new

Bestätigt zu funktionieren in Visual Studio 2015 mit MVC 5

@Html.TextAreaFor(model => model.Comments, 5, 500, new {maxlength=4000, @class = "form-control" }) 
Verwandte Themen