2

我正在使用示例 MVC4 模板构建向导表单,我从http://afana.me/post/create-wizard-in-aspnet-mvc-3.aspx获取源代码

当我触发制作“下一步”按钮的java脚本时,我得到以下错误

var 验证器 = $('form').validate(); // 获取验证器 Uncaught TypeError: Object [object Object] has no method 'validate'

下面是带有下一步按钮的完整 JS 部分触发器。

 $("#next-step").click(function () {
        var $step = $(".wizard-step:visible"); // get current step
        var validator = $('form').validate(); // obtain validator
        var anyError = false;
        $step.find("input").each(function () {
            if (!validator.element(this)) { // validate every input element inside this step
                anyError = true;
            }
        });

        if (anyError)
            return false; // exit if any error found

我已经在 mvc4 包中包含了库源。我能够使用不显眼的 js 成功获得客户端验证。但是在下一个按钮上调用验证失败。

有关如何解决此问题的任何帮助将非常有帮助

4

2 回答 2

4

我能够找出问题所在。
MVC4 模板在 body 标记的末尾有一个 js 引用。

@Scripts.Render("~/bundles/jquery")
@RenderSection("scripts", required: false)

会覆盖所有其他 jquery 库,因此找不到方法 x。

于 2012-08-29T04:40:18.703 回答
0

一年后更新

详细来说,VS 2013 使用 MVC4 添加到 _Layout 部分视图

@Scripts.Render("~/bundles/jquery")

之后的第二次冗余

@Scripts.Render("~/bundles/jqueryval")已宣布

因此,@Scripts.Render("~/bundles/jquery")底部的重新声明将禁用.valid()jqueryval 包中的有用方法。

删除它进行修复。

于 2014-06-24T15:46:54.783 回答