web-dev-qa-db-fra.com

comment ajouter maxlength pour TextAreaFor dans View with a engine from rasoir

J'ai un contrôle TextArea () dans ma vue implémenté à l'aide de Razor Engine.

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

Comment puis-je définir l'attribut Maxlength pour ce contrôle?
Y at-il un attribut intégré dans RazorEngine ou dois-je utiliser des scripts?

12
Kamil

Vous pouvez le faire comme:

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

Sachez que c'est un attribut HTML5

maxlength HTML5
Nombre maximal de caractères (points de code Unicode) que l'utilisateur peut entrer. S'il n'est pas spécifié, l'utilisateur peut entrer un nombre illimité de caractères.

MDN


Validation Javascript (avec jQuery) pour HTML <5:

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

D&EACUTE;MO

30
gdoron

Cela fonctionne également pour le TextAreaFor helper avec plusieurs types anonymes dans new

Confirmé à fonctionne bien dans Visual Studio 2015 avec MVC 5  

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

Vous pouvez également limiter la longueur de la zone de texte, comme ceci:

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

        OR
@Html.TexareaFor(m=>m.Name,new{@maxlength="10"})
1
kavitha Reddy
<p>Customer Number: @Html.TextBox("SearchString1",null, new {maxlength = 6})
 <input type="submit" value="Filter" /></p>

Ce qui précède est un exemple qui m'a permis de limiter le nombre maximum de caractères autorisés. Les astuces que vous pouvez parcourir lorsque vous utilisez un environnement .Net sont extrêmement utiles. (* remarque, cela ne change pas physiquement la taille de la zone de texte)

"SearchString1" = Nom de chaîne ----- null = Valeur de l'objet ------ new {maxlength = 6} = object htmlAttributes

0
Jonathan