Asp.net
使用 Razor 的 Html.EditFor 時限製文本框中字元的長度
我正在使用 MVC3 的 Razor 引擎生成視圖並讓以下程式碼行生成一個文本框
@Html.EditorFor(model => model.AddressLine1)在相關模型中,我使用數據註釋屬性將可接受的字元數限制為 55:
[StringLength(55)] public string AddressLine1 { get; set; }然而,這允許使用者輸入更長的地址,然後在他們嘗試送出表單時通過驗證消息被告知。如何將文本框限制為 55 個字元,以便使用者無法輸入更多內容?
如果我自己生成文本框,我會使用 maxlength 屬性作為輸入類型,但我不確定如何使用 Html.EditFor 方法獲得相同的結果。
使用
maxlengthand aTextBoxFor代替EditorFor
EditorFor沒有允許這樣做的過載。這對您來說可能更有趣: 來自 Asp.Net MVC 中 DataAnnotations StringLength 的文本框的 maxlength 屬性
@Html.TextBoxFor(model => model.AddressLine1, new {maxlength = 55})maxlength
如果 type 屬性的值為 text、email、search、password、tel 或 url,則該屬性指定使用者可以輸入的最大字元數(以 Unicode 碼位表示);對於其他控制項類型,它被忽略。
你也可以在不改變 DOM 的情況下使用 jQuery:
$('#AddressLine1').keypress(function(){ return this.value.length < 55 })