2012-05-14 29 views
11

que tienen un control TextArea() En mi opinión implementado utilizando la maquinilla de afeitar del motor.cómo agregar maxlength para TextAreaFor en Vista utilizando el motor de la maquinilla de afeitar

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

¿Cómo puedo establecer el atributo Maxlength para este control?
¿hay algún atributo en construido en RazorEngine o tengo que usar scripts?

+0

Tenga en cuenta que usted no usa 'TextAreaFor' en su pregunta ... – gdoron

Respuesta

27

Puede hacerlo como:

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

Sólo ten en cuenta que es atributo de un HTML 5

maxlength HTML5
El número máximo de caracteres (puntos de código Unicode) que el usuario puede entrar. Si no se especifica, el usuario puede ingresar un número ilimitado de caracteres.

MDN


Javascript (jQuery) de validación de HTML 5 <:

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

DEMO

+0

Thnx ... de cualquier manera que tenga que usar Javascript para la validación cuando se trata de HTML5 navegadores incompatibles rito? – Kamil

+0

@Kamil. Así es, no es tan difícil hacerlo por cierto. – gdoron

+0

@Kamil. ¿Sabes cómo? – gdoron

-1

¿Cómo puedo configurar el atributo MaxLength para este control?

El atributo maxlength no es válido para el elemento <textarea>. Esa no es una limitación MVC de ASP.NET. En la especificación HTML este atributo está definido solo para campos de entrada de texto simple. Si desea limitar el número de caracteres que un usuario podría escribir en un área de texto, podría usar javascript.

+0

No es cierto. maxlength es un atributo HTML5. – gdoron

+0

@gdoron. para la navaja de afeitar ??? –

+0

@ bitoshi.n. ¿Maquinilla de afeitar? es solo html, razor es una herramienta que te ayuda a crear el HTML. – gdoron

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

Lo anterior es un ejemplo que trabajó para mí para restringir el máximo de caracteres permitidos para ser ingresados. Los consejos que aparecen cuando se usa un entorno .Net son extremadamente útiles. (* tenga en cuenta que esto no cambia físicamente el tamaño del cuadro de texto)

"SearchString1" = Nombre de cadena ----- nulo = Valor del objeto ------ nuevo {maxlength = 6} = objeto htmlAttributes

+0

¿Qué significa esto más allá de la respuesta ya aceptada? – dove

1

también puede restringir la longitud de cuadro de texto, así:

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

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

esto también funciona para el ayudante TextAreaFor con más de un tipo anónimo en new

Confirmó a trabajo fino en Visual Studio 2015 con MVC 5

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