我正在尝试在我正在处理的Web应用程序中实现简单的客户端验证,并且实际的验证消息正在运行。但是,当我更正错误输入并且控件失去焦点时,验证消息不会清除,并且无效类仍保留在控件上。这是相关的视图代码
@model Project.CommentViewModel
@using (Html.BeginForm())
{
@Html.ValidationSummary(true);
<div class="Comment">
<div class="CommentInfo">
Post New Comment:
</div>
<div class="CommentText">
<div class="commentEdit ">
@Html.TextAreaFor(x => x.CommentText, new { @class = "NewCommentTextBox" })
@Html.ValidationMessageFor(x => x.CommentText)
</div>
@Html.HiddenFor(x => x.ProjectID)
</div>
</div>
}
视图模型属性
[StringLength(50)]
public string CommentText { get; set; }
正如我之前提到的,一旦注释过长而控件失去焦点,错误消息就会按预期出现。但是,如果错误已修复,则错误消息不会消失,控件将保持红色。我的_Layout页面包含正确顺序的相关脚本文件,我的配置文件正确设置了appSetting变量。知道什么是错的或我应该在哪里寻找问题?非常感谢任何建议。
答案 0 :(得分:0)
解决了这个问题。页面上其他位置出现的Telerik网格似乎与验证有些冲突,并打破了它。使用网格手动注册jquery验证脚本解决了该问题。
@(Html.Telerik().ScriptRegistrar().DefaultGroup(group =>
group.Add("jquery.validate.js").Add("jquery.validate.unobtrusive.js")))
我认为他们可能已经使用较新版本的Telerik库解决了这个特定问题。