我使用ASP.NET MVC 3与unobstrusive验证JavaScript.我也在使用jquery ui标签,我想选择一个包含无效消息元素的标签.
因此,为此,我需要在评估jquery.validate之后调用脚本.
我试过这样的:
$(':submit').submit(function () {
var invalidField = $(".input-validation-error");
if (invalidField ) {
tabid = //some script to detect wich tab contains the invalidField
$('#someTabed').tabs('select', tabid));
}
});
Run Code Online (Sandbox Code Playgroud)
它工作正常,但我点击提交按钮TWICE.这意味着在我想要的事件之后不会调用此方法.
所以我需要知道如何拦截由不引人注意的验证所做的验证方法,然后在我之后使用我的方法.
我有一个页面上有jQuery UI标签,第一个标签上有一个必填字段.验证有效,如果用户未输入值,则验证消息将显示在字段旁边.但是,如果用户不在第一个选项卡上,则该字段无效是不明显的.
在这种情况下,我想显示第一个选项卡,但是我不知道如何为'无效'事件注册回调,如果有的话.
我还考虑在选项卡上方显示验证摘要,无论用户在哪个选项卡上都可以看到,但我的偏好是将用户带到该字段.
我试过查看jquery.validate.unobtrusive.js文件,它似乎扩展了jquery.validate.js.查看jquery.validate的文档,我看到有一个invalidHandler选项可以传递给validate方法,但我不知道如何使用它,因为该方法由jquery.validation.unobtrusive调用.
我在这里感觉有点失落,所以任何帮助都将不胜感激!
编辑
我从来没有想出答案,但确实想出了一个解决方法,我在下面发布了.不过,我希望有人以更好的方式回答这个问题.
validation jquery-validate jquery-ui-tabs unobtrusive-validation asp.net-mvc-3