2013-04-24 75 views

回答

1

您的解决方案并非不正确,您的修补程序可以完成这项工作,但我认为它的一些背景信息不会造成任何影响。

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

它用于提供代码的向后兼容性,取决于旧的jQuery版本。如果你不想被警告不赞成使用的功能以及如何将它们升级到当前的标准,则可以禁用与下面的代码行的警告:

jQuery.migrateMute = true; 

注意的是,这些警告仅与开发版本发生的jQuery Migrate,所以如果你切换到jquery migrate的缩小版本(jquery-migrate-1.0.0.min.js),这条线甚至不需要。

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

因此,所有的一切:

  • 你不需要解决它,如果你使用了jQuery插件迁移(你这样做)。
  • 可以禁用该警告。
  • 该警告不会显示在生产环境中(如果使用了正确的脚本)。
  • 无论如何,微软会在下一个版本的jquery.validate中修复它。不显眼
  • 如果您确实修复了它,请确保您在缩小版本中修复了它。
  • 修复它的唯一好处是你可以删除jQuery Migrate插件(我只建议如果你完全确定你的应用中没有javascript,这取决于传统的jQuery特性)。
+0

的事情是,我不希望使用迁移插件,如果没有必要。谢谢 – ShaneKm 2013-04-24 06:59:11

+0

比你的修复是好的:)。只要确保你也在jquery.validate.unobtrusive的缩小版本中解决了这个问题。 – SoonDead 2013-04-24 07:17:28

2

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

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"));