$(“form”).valid() throwing error, though all files

2019-01-26 11:28发布

问题:

I am getting a "Object doesn't support property or method 'valid'" error throwing at the line where I am calling the valid method for my form.

$('#NewPersonForm').valid();

I checked if any stray/missed semicolons or commas, but everything seems fine. I have included the follwing scripts in my _layout.cshtml file

<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/CustomizeTelerikGridFilter.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/Common.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/MicrosoftAjax.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/MicrosoftMvcAjax.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/MicrosoftMvcValidation.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/CustomValidator.js")" type="text/javascript"></script>

Appreciate any thoughts please.

EDIT

Complete script references did not get pasted. Also I tried the same in IE, CHROME, FF

回答1:

I put my money on this option:
You are referencing the JQuery scripts again in the page, thus overriding the validation plugin declared in the _layout.cshtml.

JQuery plugins extends the JQuery object, So if you reference JQuery again it overrides the "extended" JQuery object.

Check the rendered HTML, you probably have two references to JQuery library