【发布时间】:2016-06-28 14:07:02
【问题描述】:
我注意到 jquery.validate 在 asp.net mvc 上有奇怪的行为
我的模型字段包含带有StringLengthattribute 的字段:
[StringLength(200, ErrorMessage = "Cannot be longer than 200 characters.")]
public string Name{ get; set; }
并查看:
@Html.LabelFor(model => model.Name, htmlAttributes: new { })
<div class="form-group formgroup-custom">
@Html.TextAreaFor(model => model.Name, 2, 1, new { @class = "form-control" })
</div>
@Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger error-custom" })
所以现在如果我点击我的TextArea 并输入 201 个字符,则不会发生错误,然后会出现失去焦点(比如说点击其他字段)错误消息。然后我回到我的TextArea删除200个字符下的内容,错误消息隐藏,不同的是输入201个字符后错误自动显示,无需失去焦点。
看起来第一次验证检查是针对某个loosing focus 事件,然后第二次检查keye up。
所以我的问题是jquery.validate* 是否有一些错误,或者是否有其他脚本可能以某种方式破坏了它。
框架: .NET 4.6
【问题讨论】:
-
这是默认行为 - 请参阅 documentation,特别是标题为玩演示时需要注意的一些事项的部分
-
谢谢!这个页面很方便
标签: jquery .net asp.net-mvc