我正在使用MVC3的Razor引擎来生成视图,并使用以下代码行生成文本框
@Html.EditorFor(model => model.AddressLine1)
在相关模型中,我使用数据注释属性将可接受字符数限制为55:
[StringLength(55)]
public string AddressLine1 { get; set; }
然而,这允许用户输入更长的地址,然后在尝试提交表单时通过验证消息告知。如何将文本框限制为55个字符,以便用户无法输入更多内容?
如果我自己生成文本框,我会使用maxlength属性作为输入类型,但我不确定如何使用Html.EditFor方法获得相同的结果。
答案 0 :(得分:8)
使用maxlength
和TextBoxFor
代替EditorFor
EditorFor
没有超载允许这样做。
这对你来说可能更有趣: maxlength attribute of a text box from the DataAnnotations StringLength in Asp.Net MVC
答案 1 :(得分:8)
@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
})
答案 2 :(得分:0)
$('#AddressLine1').keypress(function(){
return this.value.length < 55
})
此jQuery函数可在网络浏览器上使用,但在移动设备上不支持,因此在创建每个人都可以访问的网站时,请考虑