Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Uncaught TypeError: Cannot set property 'unobtrusive' of undefined

I am getting this error in the Chrome JScript debugger. It happened when I switched to the Microsoft CDNs for the scripts below.

I'm not sure how to work around this save, not using the CDNs anymore.

jquery.validate.unobtrusive.min.js:5 Uncaught TypeError: Cannot set property 'unobtrusive' of undefined

<link href="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.16/themes/start/jquery-ui.css" rel='stylesheet' type='text/css'> <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.4.min.js"></script> <script src="http://ajax.aspnetcdn.com/ajax/modernizr/modernizr-1.7-development-only.js"></script> <script src="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.11/jquery-ui.js"></script> <script src="http://ajax.aspnetcdn.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js"></script> <script src="http://ajax.aspnetcdn.com/ajax/jquery.templates/beta1/jquery.tmplPlus.min.js"></script> <script src="http://ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.validate.unobtrusive.min.js"></script> <script src="http://ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.unobtrusive-ajax.min.js"></script> 
like image 898
101010 Avatar asked Oct 27 '11 03:10

101010


2 Answers

Another reason this error can occur is if you load the unobtrusive script before jquery.validate.

So,

<script src="/scripts/jquery.validate.min.js" type="text/javascript"></script> <script src="/scripts/jquery.validate.unobtrusive.min.js" type="text/javascript"></script> 

is OK, but:

<script src="/scripts/jquery.validate.unobtrusive.min.js" type="text/javascript"></script> <script src="/scripts/jquery.validate.min.js" type="text/javascript"></script> 

will give the "Cannot set property 'unobtrusive' of undefined" error.

like image 188
StuartQ Avatar answered Sep 30 '22 17:09

StuartQ


Found it. I was missing two lines:

<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js"></script> <script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/additional-methods.min.js"></script> 

I learned this by reading this page which describes how the jquery.validate.unobtrusive script works.

like image 39
101010 Avatar answered Sep 30 '22 19:09

101010