【发布时间】:2015-07-22 14:48:25
【问题描述】:
我有一个使用 JQuery v1.10.2 和 JQuery.Validate v1.13.1 的 ASP.NET MVC 5 应用程序,当通过单击“提交”验证表单或验证输入时,我在 Chrome 中收到以下错误失去焦点后:
并且 Internet Explorer 也给了我同样的错误。
我正在使用捆绑系统将不同的脚本捆绑在一起,并在另一个项目中进行维护(该项目在应用程序之间共享,使代码可在一个地方维护)。我的捆绑包如下所示:
BundleTable.Bundles.Add(new ScriptBundle(BundleNames.JavaScript.JQuery).Include(
string.Format("~/{0}/jquery-1.10.2.js",_JavaScriptFolder""),
string.Format("~/{0}/jquery-1.10.2.min.js",_JavaScriptFolder),
string.Format("~/{0}/jquery-migrate-1.2.1.js",_JavaScriptFolder),
string.Format("~/{0}/jquery-migrate-1.2.1.min.js",_JavaScriptFolder)));
BundleTable.Bundles.Add(new ScriptBundle(BundleNames.JavaScript.JQueryValidation).Include(
string.Format("~/{0}/jquery.validate.js",_JavaScriptFolder),
string.Format("~/{0}/jquery.validate.min.js",_JavaScriptFolder),
string.Format("~/{0}/jquery.validate.unobtrusive.js",_JavaScriptFolder),
string.Format("~/{0}/jquery.validate.unobtrusive.min.js",_JavaScriptFolder),
string.Format("~/{0}/jquery.validate-vsdoc.js", _JavaScriptFolder)));
它们会像这样被包含到应用程序布局视图中:
@Scripts.Render(Ebi.Mvc.Library.Bundling.BundleNames.JavaScript.JQuery)
@Scripts.Render(Ebi.Mvc.Library.Bundling.BundleNames.JavaScript.JQueryValidation)
当使用 JQuery v1.9.1 和 JQuery.Validate v1.10.0 时,此设置运行良好,但我必须更新 JQuery.Validate,并且我还决定更新 JQuery(由于 IE 兼容性原因,我避免使用 2.X ),但从那以后我一直被这个错误困扰。我什至尝试过改回可以正常工作的原始版本,但奇怪的是错误仍在发生。
我查看了this question (which seems practically identical) 的答案,并使用 NuGet 包管理器安装了 JQuery Migrate 插件,并将它添加到 JQuery 包中,但似乎所做的只是停止抛出错误包含已加载表单的页面。
我还要补充一点,在抛出错误后,表单上仍会进行验证(例如,将验证类添加到输入并显示输入错误)。
谁能帮我弄清楚是什么导致了这个错误?
【问题讨论】:
-
你从来没有提到过
unobtrusive-validation插件,它通常用于帮助在ASP 中初始化jQuery Validate。 -
您不应该同时使用每个脚本的缩小版和未缩小版...只使用其中一个。
-
感谢您对缩小和未缩小版本的建议,我会注意的。关于
unobtrusive-validation插件,它使用的是哪个 .js 文件?我有一个jquery.unobtrusive-ajax.js及其缩小版,还有我上面的问题jquery.validate.unobtrusive.js中的捆绑代码sn-p 中列出的那个
标签: jquery asp.net-mvc jquery-validate unobtrusive-validation