Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript $(';表单';)。验证未定义_Javascript_Jquery_Asp.net Mvc_Model View Controller_Wizard - Fatal编程技术网

Javascript $(';表单';)。验证未定义

Javascript $(';表单';)。验证未定义,javascript,jquery,asp.net-mvc,model-view-controller,wizard,Javascript,Jquery,Asp.net Mvc,Model View Controller,Wizard,我正在尝试使用本文描述的技术在MVC中实现一个向导。(我正在使用最新版本的MVC。) 但我似乎在以下代码行中遇到了问题: var validator = $("form").validate(); // obtain validator 此行导致错误,因为未定义$(“表单”).validate 不幸的是,我真的不知道这个特定的代码是如何工作的,所以我不知道如何修复它。有人能解释一下这里发生了什么吗?应该在哪里定义validate?听起来好像您没有在html文件中包含jquery验证脚本。你是否

我正在尝试使用本文描述的技术在MVC中实现一个向导。(我正在使用最新版本的MVC。)

但我似乎在以下代码行中遇到了问题:

var validator = $("form").validate(); // obtain validator
此行导致错误,因为未定义
$(“表单”).validate


不幸的是,我真的不知道这个特定的代码是如何工作的,所以我不知道如何修复它。有人能解释一下这里发生了什么吗?应该在哪里定义
validate

听起来好像您没有在html文件中包含jquery验证脚本。你是否:

<script src="http://cdn.jsdelivr.net/jquery.validation/1.13.1/jquery.validate.min.js"></script> 


或者在本地包含它?

听起来好像您没有将jquery验证作为脚本包含在html文件中。你是否:

<script src="http://cdn.jsdelivr.net/jquery.validation/1.13.1/jquery.validate.min.js"></script> 


或者本地包含它?

实际上,默认情况下,_Layout.cshtml文件包含位于页面末尾的脚本文件(就在结束正文标记之前),如果您在浏览器中查看呈现的页面,就会看到

常规视图中的内容嵌入在布局文件中具有@RenderBody调用的位置。正如您所看到的,对RenderBody的调用在包含的脚本之前。这就是为什么您编写的任何引用外部代码的javascript代码都无法工作的原因

即使在包含脚本之后,“脚本”部分也在布局文件中定义。因此,如果您使用@section“Scripts”,那么您放在那里的任意代码肯定会出现在包含的js文件之后,因此它会工作


希望它现在更有意义。

实际上,默认情况下,_Layout.cshtml文件包含位于页面末尾的脚本文件(就在结束正文标记之前),如果您在浏览器中查看呈现的页面,就会看到

常规视图中的内容嵌入在布局文件中具有@RenderBody调用的位置。正如您所看到的,对RenderBody的调用在包含的脚本之前。这就是为什么您编写的任何引用外部代码的javascript代码都无法工作的原因

即使在包含脚本之后,“脚本”部分也在布局文件中定义。因此,如果您使用@section“Scripts”,那么您放在那里的任意代码肯定会出现在包含的js文件之后,因此它会工作



希望它现在更有意义。

它应该在jQuery验证插件中定义,您可能在什么地方包含了它?我想知道这一点。但是我的布局文件包含
@Styles.Render(“~/Content/css”)@Scripts.Render(“~/bundles/jquery”)@Scripts.Render(“~/bundles/jqueryval”)@Scripts.Render(“~/bundles/modernizer”)
。请尝试console.log($((“form”)),以便您可以在控制台中检查表单是否实际位于DOM中,如果你能在jquery对象的原型(
\uuuuuu proto\uuuuu
)下找到validate作为一种方法。它应该在jquery validate插件中定义,你可能在什么地方包括了它?我想知道这一点。但是我的布局文件包含
@Styles.Render(“~/Content/css”)@Scripts.Render(“~/bundles/jquery”)@Scripts.Render(“~/bundles/jqueryval”)@Scripts.Render(“~/bundles/modernizer”)
。请尝试console.log($((“form”)),以便您可以在控制台中检查表单是否实际位于DOM中,如果您可以在jquery对象的原型(
\uuuu proto\uuuu
)下找到validate作为一种方法。我没有确切的那一行,但我有
@Scripts.Render(“~/bundles/jquery”)
@Scripts.Render(“~/bundles/jqueryval”)
,在我的布局文件的顶部。可能是到jqueryval的路径不正确,你能再检查一下吗?我的渲染标记包括
,我可以从浏览器中单击链接,脚本文件会按预期显示出来。@JonathanWood-然后文件就在那里,奇怪的是函数没有定义。你确定你的问题中的脚本之前包含了插件吗?你能澄清一下插件在这里具体指的是什么吗?我没有这一行,但我有
@Scripts.Render(“~/bundles/jquery”)
@Scripts.Render(“~/bundles/jqueryval”)
在我的布局文件的顶部。可能是jqueryval的路径不正确,你能仔细检查一下吗?我呈现的标记包括
,我可以单击浏览器中的链接,脚本文件会如预期的那样出现。@JonathanWood-然后文件就在那里,奇怪的是函数没有定义。你确定你的问题中的脚本之前已经包含了插件吗?你能澄清一下插件在这里具体指的是什么吗?是的,这就是问题所在。昨晚经过一些研究和挠头,我终于弄明白了。(顺便说一句,在回答中不必称呼我的名字为@JonathanWood。)谢谢。我开始写评论,但意识到时间太长,因此我将其转换为回答。修好了。谢谢。是的,这就是问题所在。昨晚经过一些研究和挠头,我终于弄明白了。(顺便说一句,在回答中不必称呼我的名字为@JonathanWood。)谢谢。我开始写评论,但意识到时间太长,因此我将其转换为回答。修好了。谢谢