1

我已经完成了这篇文章中描述的所有步骤:

将 jQuery 更新到 1.9.0 后,Unobtrusive Ajax 停止工作

和这个:

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

但是,我仍然在 (jquery.validate.unobtrusive.js) 的这一行收到了萤火虫警告

 $jQval.unobtrusive.parse(document);

在此处输入图像描述

4

2 回答 2

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"));
于 2013-04-24T06:14:52.590 回答
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 Migrate 插件(您会这样做),则无需修复它。
  • 可以禁用该警告。
  • 该警告不会出现在生产环境中(如果使用了正确的脚本)。
  • 无论如何,微软希望在 jquery.validate.unobtrusive 的下一个版本中修复它
  • 如果您确实修复它,请确保您也在缩小版本中修复它。
  • 修复它的唯一好处是您可以删除 jQuery Migrate 插件(我只建议您绝对确定您的应用程序中没有 javascript 取决于遗留的 jQuery 功能)。
于 2013-04-24T06:32:55.290 回答