为啥我在使用 jQuery Validate 时会出现这个 JavaScript 错误?

Posted

技术标签:

【中文标题】为啥我在使用 jQuery Validate 时会出现这个 JavaScript 错误?【英文标题】:Why I get this JavaScript error with jQuery Validate?为什么我在使用 jQuery Validate 时会出现这个 JavaScript 错误? 【发布时间】:2017-06-14 16:54:03 【问题描述】:

我在 asp.net mvc 5 项目中使用 jquery.unobtrusive 和 jquery.validate 库来验证客户端的用户注册。

在浏览器上出现此错误:

Uncaught TypeError: $(...).parents(...).andSelf is not a function
    at Object.parse (jquery.validate.unobtrusive.js:211)
    at htmlDocument.<anonymous> (jquery.validate.unobtrusive.js:392)
    at mightThrow (jquery-3.1.1.js:3570)
    at process (jquery-3.1.1.js:3638)

我在我的项目中使用 jquery 3.1.1。这似乎是版本问题。

知道怎么解决吗?

【问题讨论】:

【参考方案1】:

Uncaught TypeError: $(...).parents(...).andSelf 不是函数

Read the jQuery docs.

“我在我的项目中使用 jquery 3.1.1。”

.andSelf() 方法已从 jQuery 版本 3 中删除

它是the .addBack() method 的别名,应该改用它。

【讨论】:

【参考方案2】:

就像@Sparky 所说,这是因为从 NuGet 获得的 Unobtrusive JS 文件(如果您在 Visual Studio 中使用 File->New 创建应用程序)使用了已弃用的 andSelf() 函数。

要解决,请获取最新版本

jquery.validate.unobtrusive.js jquery.validate.unobtrusive.min.js

来自

https://github.com/aspnet/jquery-validation-unobtrusive/tree/master/dist

并替换项目中的那些。或从 nuget 下载/更新现有插件。

更换后 确保清除浏览器缓存。 (如果您使用的是 chrome,请按 Control + F5)

【讨论】:

以上是关于为啥我在使用 jQuery Validate 时会出现这个 JavaScript 错误?的主要内容,如果未能解决你的问题,请参考以下文章

为啥使用jquery validate进行表单验证时不能显示提示信息????

jquery.validate 当验证正确之后为啥错误信息没有移除?

我在表单上使用 jquery .validate() 后 jQuery .submit() 不起作用

jquery.validate中的errorPlacement success unhighlight等共用问题

jquery validate 验证不通过后验证正确的信息仍残留在label上的解决方法

使用 jQuery 和验证提交表单