在ASP.NET MVC 3中使用不显眼的验证,如何在表单无效时采取措施?

Jef*_*ata 6 validation jquery-validate jquery-ui-tabs unobtrusive-validation asp.net-mvc-3

我有一个页面上有jQuery UI标签,第一个标签上有一个必填字段.验证有效,如果用户未输入值,则验证消息将显示在字段旁边.但是,如果用户不在第一个选项卡上,则该字段无效是不明显的.

在这种情况下,我想显示第一个选项卡,但是我不知道如何为'无效'事件注册回调,如果有的话.

我还考虑在选项卡上方显示验证摘要,无论用户在哪个选项卡上都可以看到,但我的偏好是将用户带到该字段.

我试过查看jquery.validate.unobtrusive.js文件,它似乎扩展了jquery.validate.js.查看jquery.validate的文档,我看到有一个invalidHandler选项可以传递给validate方法,但我不知道如何使用它,因为该方法由jquery.validation.unobtrusive调用.

我在这里感觉有点失落,所以任何帮助都将不胜感激!

编辑

我从来没有想出答案,但确实想出了一个解决方法,我在下面发布了.不过,我希望有人以更好的方式回答这个问题.

Jef*_*ata 1

我最终手动验证并提交了表单:

$("#save-button").button().click(function() {
    if (!$("#profile-form").valid()) {
        if ($("#tabs").tabs("option", "selected") > 0) {
            $("#tabs").tabs("option", "selected", 0);
        }
        return false;
    }
    $("#profile-form").submit();
});
Run Code Online (Sandbox Code Playgroud)