2013-04-24 78 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"));