但尝试操作jquery验证插件1.6,但我在Chrome检查器中收到此错误:
未捕获的ReferenceError:jQuery不是 定义。 ------ jquery.validate.min.js:15
我在我的页面中加载了jquery 1.4.4。
有什么想法吗?
此致
哈维
答案 0 :(得分:8)
您需要确保在验证插件之前首先加载jquery
。
答案 1 :(得分:0)
确保您不会多次导入jQuery!就我而言,我从
开始在asp.net中的.cshtml
视图
<script src="~/Scripts/jquery.js"></script>
然后在我的代码结尾,我忘记了将其遗忘了:
@Scripts.Render("~/bundles/jqueryval")
在页面上多次导入jQuery不会导致任何问题。有关更多信息,请参见this bug report from the jQuery project,但这句话对我来说很突出:
[如果您在页面上多次引用jQuery] ...作为jQuery 脚本执行后会重新初始化$和$ .prototype,从而删除所有 现有的插件。主机页面停止工作。
答案 2 :(得分:0)
我只想补充一下,所有所有的.js文件仅一次包含,并且正确的顺序(验证之前的jquery,不引人注意的jquery)对于应用程序的正确运行至关重要。在认真研究之前,我花了2天的调试时间。如果捆绑包带有*来捕获所有文件,它们可以以不可预测的顺序添加.js文件。将捆绑包分成较小的捆绑包,以便您可以控制它们的加载顺序。如果.js文件已加载到_layout中,请不要在单独的视图中再次添加该文件。我希望这对某人有帮助。
答案 3 :(得分:0)
就我而言,我无法控制脚本加载的顺序,因为基本的 jquery
脚本是我扩展的功能的一部分,另外还包含了 jquery.validate
。所以帮助我的是 defer
属性,它推迟给定的脚本加载,直到页面被完全解析:
<script defer src="../js/jquery.validate"></script>