3

新しい MVC 3 プロジェクトを作成し、パッケージ マネージャーを使用してインストール済みのすべてのパッケージを更新しましたが、次のエラーが表示されます。

Microsoft JScript ランタイム エラー: プロパティ 'unobtrusive' の値を設定できません: オブジェクトが null または未定義です

関連するコードは次のとおりです。

<!DOCTYPE html>

<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>@ViewBag.Title</title>

        <link href="@Url.Content("~/Content/Reset.css")" rel="stylesheet" type="text/css" />
        <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />

        <script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script>

        <script src="@Url.Content("~/Scripts/jquery-1.7.2.min.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/jquery-ui-1.8.20.min.js")" type="text/javascript"></script>

        <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>
    </head>

    <body>
        @RenderBody()
    </body>
</html>

エラーが発生した領域の JavaScript スニペット:

$jQval.unobtrusive = {
        adapters: [],

        parseElement: function (element, skipAttach) {
            /// <summary>
            /// Parses a single HTML element for unobtrusive validation attributes.
            /// </summary>
            /// <param name="element" domElement="true">The HTML element to be parsed.</param>
            /// <param name="skipAttach" type="Boolean">[Optional] true to skip attaching the
            /// validation to the form. If parsing just this single element, you should specify true.
            /// If parsing several elements, you should specify false, and manually attach the validation
            /// to the form when you are finished. The default is false.</param>
            var $element = $(element),
                form = $element.parents("form")[0],
                valInfo, rules, messages;

            if (!form) {  // Cannot do client-side validation without a form
                return;
            }...

このエラーが発生する理由と修正方法を教えてください。必要なスクリプトへの参照がないだけですか?

ありがとう、アレックス。

4

2 に答える 2

13

jquery.validate.js前に含める必要がありますjquery.validate.unobtrusive.js

    <script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>
于 2012-05-25T16:09:46.570 に答える
2

JQuery Validate スクリプトも含める必要があります

于 2012-05-25T16:07:40.283 に答える