我使用MicrosoftMvcValidation.js进行客户端验证。错误消息显示正确。但是,我的页面很长,当错误显示时,它不会自动向上滚动以显示第一条错误消息或将焦点设置为错误字段。如何在按钮旁边显示一条消息,如“错误发生。请更正您的输入”,但没有字段错误列表;或自动将焦点移动到第一个错误字段?
答案 0 :(得分:1)
每当您遇到验证错误时,客户端验证会将input-validation-error
类添加到导致验证的输入框中。例如,在MVC3中,如果启用了不显眼的验证,您将获得添加到文件中的其他javascript文件,例如
<script src="/Scripts/jquery.unobtrusive-ajax.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.validate.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.validate.unobtrusive.min.js" type="text/javascript"></script>
这意味着您可以在这些行之后使用自己的jQuery函数来检测输入验证错误是否存在。这段代码是我在我的应用程序中使用的东西:
$(document).ready(function () {
$("form[action*='New/']").submit(function () {
var firstError = $(this).children(":first has('.input-validation-error')");
if (firstError != null) {
firstError.focus();
return false; // no form posting
}
});
});
将form[action*='New/']
替换为您的表单操作,例如form[action*='/MyController/MyRegistrationAction/']
(*=
表示在任何位置查找此文字。)