繁体   English   中英

使用JQuery 1.9的MVC不显眼验证无法正常工作

[英]MVC unobtrusive validation with JQuery 1.9 not working

我已完成本文所述的所有步骤:

在将jQuery更新到1.9.0后,不显眼的Ajax停止工作

还有这个:

更新到Jquery 1.9.0时,jquery.unobtrusive-ajax插件坏了

但是我仍然在firebug中收到警告(jquery.validate.unobtrusive.js)

 $jQval.unobtrusive.parse(document);

在此输入图像描述

让它工作现在没有任何问题。 如果这是不正确的,请告诉我,但从我看到它正常工作。

jquery.validate.unobtrusive.js

209行:

        var $forms = $(selector)
            .parents("form")
            .andSelf()
            .add($(selector).find("form"))
            .filter("form");

第209行到此:

        var $forms = $(selector)
            .parents("form")
            .addBack()
            .add($(selector).find("form"))
            .filter("form");

第43行:

replace = container.attr("data-valmsg-replace") && $.parseJSON(container.attr("data-valmsg-replace")) !== false;

第73行:

replace = container.attr("data-valmsg-replace") && $.parseJSON(container.attr("data-valmsg-replace"));

您的解决方案不正确,您的修复工作正在完成,但我认为有一些背景信息不会受到影响。

请注意,导致警告的原因是jQuery Migrate插件。

它用于根据较旧的jQuery版本提供代码的向后兼容性。 如果您不希望被警告有关已弃用的功能以及如何将其更新为当前标准,则可以使用以下代码行禁用警告:

jQuery.migrateMute = true;

请注意,这些警告只发生在jQuery Migrate的开发版本中,因此如果切换到jquery migrate( jquery-migrate-1.0.0.min.js )的缩小版本,则甚至不需要此行。

另请注意,您正在使用jquery文件的开发版本,在生产环境中应使用缩小版本,因此您的修复也需要在jquery.validate.unobtrusive.min.js实现。

总而言之:

  • 如果您使用jQuery Migrate插件(您这样做),则无需修复它。
  • 该警告可以被禁用。
  • 该警告不会出现在生产环境中(如果使用了正确的脚本)。
  • 微软有望在下一版本的jquery.validate.unobtrusive中修复它
  • 如果您要修复它,请确保您也在缩小版本中修复它。
  • 修复它的唯一好处是你可以删除jQuery Migrate插件(如果你绝对确定你的应用程序中没有javascript,我会建议这取决于传统的jQuery功能)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM