最近为项目写cms系统,在新增/编辑文章的页面,一些input诸如文章题目,作者等等需要验证是否已经填写,于是使用jquery.validate.js来做这个工作,自己写了个验证的validate.js。然后运行了下,发现出了$(#contentForm).validate is not a function的错误,反复检查了ID名字拼写,自己写的JS的语法等等,都没发现错误,正惆怅中,突然想到可能是覆盖的问题,由于我们的项目的页面分别由head.php,页面.php,和foot.php组成,在head.php中载入所需要的js文件(包括jquery),而由于我在新增/编辑页面中使用一个需要jquery支持的控件jquery.simpleTree.js再一次载入了jquery.js文件,所以造成了我2次载入jquery的问题,而使用jquery.validate.js是需要有正确的载入顺序的,首先jquery.然后是jquery.validate.js,然后自己的validate.js文件,这样才能起作用,而自己在head.php载入jquery,jquery.validate.js,以及自己的validate.js文件后,又在自己的页面中重新载入了一次jquery,自然出现了$(#form).validate is not a function的错误了。
最后自己总结下,很多的jquery控件都需要先载入jquery.js文件,顺序一定不能出错,也就是说要保证jquery.js文件最新的一次载入是在这些控件载入之前。