【问题标题】:MVC3 unobtrusive validation not working in IEMVC3 不显眼的验证在 IE 中不起作用
【发布时间】:2013-02-11 18:21:26
【问题描述】:

我有 MVC3 应用程序,不显眼的验证在 FireFox 中运行良好,但在 IE 中无法运行。

有什么想法吗?

更新

似乎 MVC3 附带的 jQuery 不显眼的验证库与我正在使用的 jQuery 1.7.1 不完全兼容(引导模板附带)。适用于 Firefox,不适用于 IE 8(我拥有的那个)。

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

当我到达 1.8.1 时,它终于工作了。

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

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

看起来这也是最新的 jQuery 版本,适用于 MVC3 jQuery unobtrusive ajax 库。

附:使用 MVC3 不显眼的验证或 ajax 的人,不要使用高于 v 1.8.3 的 jQuery。

【问题讨论】:

  • 浏览器版本 od IE?什么版本的 jquery?
  • 您有任何错误吗?你试过什么吗?
  • 究竟是什么不起作用?什么版本的IE?你看到什么错误?你安装 jquery migrate 了吗?
  • 我写了上面的一切。 IE 8。“不工作”的意思是“不工作”,没有触发验证。

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


【解决方案1】:

我最近遇到了类似的问题,只有 IE7 和 IE8(使用 MVC4)。

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

jQuery:1.8.3

jQuery 验证:1.9.0.1

Microsoft Unobtrusive Validation: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

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

【讨论】:

  • 我自己只是在相同的设置中体验到了这一点。为了让这个脚本工作,我不得不一直回滚到 jQuery 1.5.1。
  • 我有以下内容。但它仍然不起作用jQuery - 2.0.3, jQuery.Validation - 1.11.1, Microsoft.jQuery.Unobtrusive.Validation - 3.0.0
  • @shashwat jQuery 2.x 有 no support for IE8 and bellow!
【解决方案2】:

我遇到了与所描述的问题非常相似的问题。使用 IE9(文档模式:IE9 标准)我收到脚本错误,因为它在任何其他浏览器(以及较低的 IE 文档标准)中都可以工作。

我使用jquery.validate.js (1.11.0)解决了这个问题

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

【讨论】:

  • 根据我的测试,与 MVC3 配合使用的最佳最新组合是 jquery 1.8.3 和 jquery ui 1.9.2。
  • 那么您的原始问题并未说明由于使用此类脚本版本而导致的错误。只是说我的问题是使用最新版本的 jquery.validate.js 解决的——我之前在 jquery.validate.unobtrusive 中遇到了对象错误。我也在使用 jquery-ui 1.10.1,一切似乎都很好
【解决方案3】:

在撰写本文时(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

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

还使用 IE10IE9(IE11 模拟这些)进行了测试。 目前未发现任何问题

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

Update-Package jQuery.Validation -Version 1.10.0 -IgnoreDependencies

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多