C# 防止MVC 3验证设置将焦点放在无效字段上。

C# 防止MVC 3验证设置将焦点放在无效字段上。,c#,asp.net-mvc,asp.net-mvc-3,unobtrusive-validation,C#,Asp.net Mvc,Asp.net Mvc 3,Unobtrusive Validation,我使用的是MVC3unobtrusivevalidation。激发验证时,它将焦点设置在第一个无效控件上。如何阻止它这样做,我更习惯于web表单,等效的方法是在验证控件上设置SetFocusOnError=false。我目前无法测试,但我记得它与此类似: var settings = $.data($('form')[0], 'validator').settings; settings.focusInvalid= false; 尝试设置全局选项: $.validator.setDefault

我使用的是MVC3unobtrusivevalidation。激发验证时,它将焦点设置在第一个无效控件上。如何阻止它这样做,我更习惯于web表单,等效的方法是在验证控件上设置
SetFocusOnError=false

我目前无法测试,但我记得它与此类似:

var settings = $.data($('form')[0], 'validator').settings;
settings.focusInvalid= false;

尝试设置全局选项:

$.validator.setDefaults({ 
    focusInvalid: false
});

您好@Ben,检查这个链接:我已经看到了,这与我想要的正好相反,我希望验证不要在无效字段上设置焦点,现在它设置了。@BenRobinson您解决了这个问题吗?我也有类似的要求。它似乎不起作用,但我不认为它离我有一百万英里远,因为当我查看jq验证程序脚本的非小型版本时,我发现一个部分设置了一些默认值,设置是
focusInvalid:true
。将其更改为false可以防止该行为,但我更希望在视图中以编程方式设置它,因为我不一定希望整个应用程序都将其设置为false。请尝试以下操作:var settings=$.data($('form')[0],'validator').settings;settings.focusInvalid=false;我只是写了一个很长的漫无边际的答案,意识到你会比我抢先一步。这样做的原因是,您还可以使用
var validator=$('#formselector).data('validator')它不起作用,焦点仍然指向第一个无效字段,尽管它看起来确实是正确的设置。现在我已经找到了相关文档。令人费解的是,如果我修改脚本,使focusInvalid的默认值为false,它就会工作。