2

サンプルMVC4テンプレートを使用してウィザードフォームを作成しています。ソースは、http: //afana.me/post/create-wizard-in-aspnet-mvc-3.aspxから取得しています。

「次へ」ボタンを作成するJavaスクリプトをトリガーすると、以下のエラーが発生します

var validator = $('form')。validate(); //バリデーターを取得しますUncaughtTypeError:Object[objectObject]にはメソッド'validate'がありません

以下は、次のボタンを使用した完全なJS部分トリガーです。

 $("#next-step").click(function () {
        var $step = $(".wizard-step:visible"); // get current step
        var validator = $('form').validate(); // obtain validator
        var anyError = false;
        $step.find("input").each(function () {
            if (!validator.element(this)) { // validate every input element inside this step
                anyError = true;
            }
        });

        if (anyError)
            return false; // exit if any error found

ライブラリソースをmvc4バンドルに含めました。控えめなjsを使用して、クライアント側の検証を正常に行うことができます。ただし、次のボタンで検証を呼び出すと失敗します。

これを修正する方法についてのヘルプは非常に役立ちます

4

2 に答える 2

4

私は問題を理解することができました。
MVC4 テンプレートには、body タグの末尾に js 参照がありました。

@Scripts.Render("~/bundles/jquery")
@RenderSection("scripts", required: false)

これは他のすべての jquery ライブラリをオーバーライドするため、メソッド x が見つかりません。

于 2012-08-29T04:40:18.703 に答える
0

1年後に更新

詳しく説明すると、MVC4 を使用する VS 2013 は _Layout 部分ビューに追加されます

@Scripts.Render("~/bundles/jquery")

冗長な2 回

@Scripts.Render("~/bundles/jqueryval")宣言されています

そのため、一番下の を再宣言すると、jqueryval バンドルの@Scripts.Render("~/bundles/jquery")ように便利なメソッドが無効になります。.valid()

削除して修正します。

于 2014-06-24T15:46:54.783 に答える