jquery验证未加载requirejs

时间:2013-09-23 08:42:04

标签: jquery jquery-validate requirejs unobtrusive-validation unobtrusive-javascript

我在RequireJS中有一个主要模块:

require([
    'jquery',
    'jquery.validate',
    'jquery.validate.unobtrusive'
], function ($) {
    $(document).ready(function () {
        var validator = $("form").validate();
        if ($("#txtFirstName").val() !== "")
            validator.element("#txtFirstName");
    });
});

当我加载此页面时,出现JavaScript错误:

  

TypeError:$(...)。validate不是函数   var validator = $(“form”)。validate(); **

我现在不知道为什么?加载所有脚本:

enter image description here

1 个答案:

答案 0 :(得分:5)

您需要配置shim以正确“连接”依赖项:

require.config({
  paths: {
    'jquery': 'path-to-jquery',
    'jquery.validate': 'path-to-jquery-validate',
    'jquery.validate.unobtrusive': 'path-to-jquery-validate-unobtrusive'
  },
  shim: {
    'jquery.validate': ['jquery'],
    'jquery.validate.unobtrusive': ['jquery', 'jquery.validate']
  }
});

require(['jquery', 'jquery.validate', 'jquery.validate.unobtrusive'], function ($) {
  // your code
});

更多细节(和示例)in the official documentation(寻找“For”模块“只是jQuery或Backbone插件......”部分)。