2012-06-29 10 views
7

używam silnika Razor MVC3 do generowania widoków i mają następującą linię kodu generowania pola tekstowegoograniczając długość znaków w polu tekstowym podczas używania noża Html.EditFor

@Html.EditorFor(model => model.AddressLine1) 

W omawianym modelu I” m przy użyciu atrybutu adnotacji danych, aby ograniczyć liczbę dopuszczalnych znaków do 55:

[StringLength(55)] 
public string AddressLine1 { get; set; } 

jednak ta pozwala użytkownikowi wpisać dłuższą adres tylko być następnie powiedział za pośrednictwem wiadomości walidacji gdy próbują i wysłać formularz . Jak mogę ograniczyć pole tekstowe do 55 znaków, aby użytkownik nie mógł wpisać więcej niż to?

Gdybym sam generował pole tekstowe, użyłbym atrybutu maxlength dla typu danych wejściowych, ale nie jestem pewien, jak uzyskać te same wyniki, używając metody Html.EditFor.

Odpowiedz

8
@Html.TextBoxFor(model => model.AddressLine1, new {maxlength = 55}) 

MaxLength
Jeżeli wartość atrybutu type jest tekst, e-mail, wyszukiwanie, hasło, tel lub url, ten atrybut określa maksymalną liczbę znaków (w kodzie kodowym Unicode), które użytkownik może wprowadzić; w przypadku innych typów kontroli jest on ignorowany.

Można również użyć jQuery bez zmiany DOM:

$('#AddressLine1').keypress(function(){ 
    return this.value.length < 55 
}) 
+2

To działa doskonale w HTML4. Są to tylko nowe ograniczenia w HTMl5, jak sądzę. –

+0

@ RaphaëlAlthaus. Masz rację, testowałem w IE8 i jest on obsługiwany. Edytowałem. – gdoron

Powiązane problemy