【问题标题】:TypeError: validator is undefined in jquery.validate.js [duplicate]TypeError:验证器在 jquery.validate.js 中未定义 [重复]
【发布时间】:2016-02-21 03:06:53
【问题描述】:

我有以下表格。

单击转到下一部分按钮后,我可以直接转到此表单中的下一部分。

这里是这个视图的whole code,这个是那个视图页面的Layout file

但是现在一旦我点击我没有得到任何响应并且我无法转到下一页我收到以下错误。但是这个错误只发生在 Firefox 中,一旦我将调试更改为 Chrome 就可以工作了。

TypeError: 验证器未定义 file_path/jquery.validate.js

这是那个错误视图

错误视图 1

单击上方视图后,我可以看到下方视图

错误视图 2

Bugzilla 调试器指出jquery.validate.js 文件的以下部分 ([if (validator.settings.rules)]) 有错误

staticRules: function( element ) {
    var rules = {};
    var validator = $.data(element.form, "validator");
    if ( validator.settings.rules ) {
        rules = $.validator.normalizeRule(validator.settings.rules[element.name]) || {};
    }
    return rules;
},

【问题讨论】:

  • 你能给我们source of html而不是服务器端代码吗?
  • @ARIFMAHMUDRANA this is the HTML
  • 看看你的布局和视图,你的脚本到处都是重复的(至少 3 个 jquery 副本 - 最后一个会清除其他的)。将所有脚本放在一个地方(在<head> 或关闭</body> 标签之前,并确保它们的顺序正确且没有重复
  • 布局和视图中的脚本一团糟。使用捆绑包(并且不包括缩小版本(捆绑将在生产中进行缩小)
  • @kez,它仍然是一团糟。在头部你有@Scripts.Render("~/Scripts/jquery.min.js"),然后是@Scripts.Render("~/Scripts/jquery.validate.min.js")@Scripts.Render("~/Scripts/jquery.validate.unobtrusive.min.js")。然后你添加@Scripts.Render("~/Scripts/jquery-1.7.1.min.js") 清除所有以前的脚本。然后在底部你有@Scripts.Render("~/bundles/jquery") 再次清除所有以前的脚本。从摆脱头脑中的一切开始。然后阅读Bundling and Minification

标签: javascript asp.net-mvc asp.net-mvc-3 jquery-validate typeerror


【解决方案1】:

我认为您需要更新 HTML 并将 <div class="form-horizontal"> 更改为 <form class="form-horizontal">。不要忘记更新结束标签。

【讨论】:

  • 当我转到您的解决方案后,不会再次出现同样的错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-20
  • 1970-01-01
  • 2012-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-04
相关资源
最近更新 更多