我有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。
答案 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.js和MVC3.0 jquery.validate.unobtrusive
答案 2 :(得分:2)
在撰写本文时( 2014年9月),我测试了以下组合并为我测试(使用 IE8 并惊喜,即使使用 IE7 !)这有效:
注意,使用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并不是很享受,但如果你在这里,那就意味着你正在与那些无法摆脱这种糟糕浏览器的客户合作......)。干杯;)