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 に答える