2

我在 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();**

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

在此处输入图像描述

4

1 回答 1

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
});

官方文档中的更多详细信息(和示例)(查找“对于只是 jQuery 或 Backbone 插件的“模块”...”部分)。

于 2013-09-23T10:58:49.993 回答