MVC3不引人注目的验证在IE中不起作用

时间:2013-02-11 18:21:26

标签: asp.net-mvc-3 unobtrusive-validation

我有MVC3应用程序,不引人注目的验证在FireFox中运行正常,但在IE中无效。

任何想法为什么?

更新

似乎MVC3附带的jQuery不显眼的验证库与我正在使用的jQuery 1.7.1(与bootstrap模板一起提供)不完全兼容。在Firefox中工作,不适用于IE 8(我拥有的)。

我开始将jQuery升级到开始工作的版本(不确定是否其他东西不会破坏!)。

当我达到1.8.1时,它终于奏效了。

我继续升级jQuery,当我到达1.9.1时 - 该死的东西再次停止工作:)

使用MVC3 jQuery不显眼验证的最新jQuery版本是1.8.3。

看起来这也是最新的jQuery版本,它与MVC3 jQuery unobtrusive ajax库配合使用。

P.S。使用MVC3不引人注意的验证或ajax的人,不要使用高于v 1.8.3的jQuery。

3 个答案:

答案 0 :(得分:7)

我最近遇到过类似的问题,仅限IE7和IE8(使用MVC4)。

为了让验证再次运行,我安装了以下版本:

jQuery: 1.8.3

jQuery验证: 1.9.0.1

Microsoft Unobtrusive验证: 2.0.30116.0 (截至2013年5月14日最新)

我注意到转移到 jQuery Validation v1.10是问题开始的地方。在本文发表时, JQuery Validation 是v1.11.1,在IE7 / 8中不起作用。这也是使用 jQuery 1.8.3和1.9.1进行的,但都没有使用最新版本的 jQuery Validation

注意:对我来说,特别的问题是验证是所有输入和复选框的触发和标记错误,即使它们不是“数据需要”。

答案 1 :(得分:2)

我遇到的问题非常类似。使用IE9(文档模式:IE9标准)我收到脚本错误,因为它在任何其他浏览器(和较低的IE文档标准)中工作。

我使用jquery.validate.js (1.11.0)

解决了这个问题

有了这个,我可以使用jQuery-1.9.1.jsMVC3.0 jquery.validate.unobtrusive

答案 2 :(得分:2)

在撰写本文时( 2014年9月),我测试了以下组合并为我测试(使用 IE8 并惊喜,即使使用 IE7 !)这有效:

  • jQuery 1.11.1 (最新的1.x版本)
  • jQuery.Validation 1.10.0
  • Microsoft.jQuery.Unobtrusive.Ajax 3.2.2 (上一个可用版本)
  • Microsoft.jQuery.Unobtrusive.Validation 3.2.2 (最后可用 版本)

注意,使用IE 11 (边缘)有时我得到(如果我用F12打开调试器)以下错误

  

SCRIPT5007:无法获取未定义或null的属性“调用”   参考文件:jquery.validate.js,行:1234,列:5

如果我关闭调试器并以普通用户身份使用该表单,如果工作正常

还测试了 IE10 IE9 (IE11模拟这些)。 目前尚无问题

如果由于遇到依赖性错误(jquery 1.4左右)而无法更新(降级)nuget包,请记住使用-IgnoreDependencies标志,例如:

Update-Package jQuery.Validation -Version 1.10.0 -IgnoreDependencies

享受(好吧,支持IE8并不是很享受,但如果你在这里,那就意味着你正在与那些无法摆脱这种糟糕浏览器的客户合作......)。干杯;)