2

mvc 3 プロジェクト (RC1 を使用) に新しい目立たない JavaScript を実装しています。必要な 3 つのスクリプトを「マスター」レイアウト ページに追加しました。すべてがうまくいっています。

ただし、通常のjquery検証を使用してテキストボックスを検証したいビューがあります。正確には、エントリが存在し、それが数値であることを確認したいと思います。

したがって、ページでは、私のjsは次のようになります...

<script language="javascript" type="text/javascript">
$(document).ready(function(){
    $('#SomeForm').validate({
        errorClass: "field-validation-error",
        validClass: "field-validation-none",
        errorElement: "label",
        rules: {
            ItemCount: {
                required: true,
                number: true
            }
        },
        messages: {
            ItemCount: {
                required: "Please specify the number of items available",
                number: "Please specify a valid number"
            }
        }
    });
});

しかし、これは機能していませんでした。そのため、私のマスター レイアウト ページで、jquery.validate.unobtrusive.min.js ファイルへの参照をコメント アウトしました。

だから私は、目立たない小片と関係があるに違いないと思ったので、それをオフにすれば(私はあなたができると読んでいた)すべてがうまくいくでしょう.

そのため、ビューページに次の行を追加しました

Html.EnableUnobtrusiveJavaScript(false);

しかし、喜びはありません。それを機能させる唯一の方法は、目立たないjsファイルへの参照を削除することです。

さすがにこれはあり得ない。私は停止している必要がありますよね?

ありがとう

4

4 に答える 4

6

jquery.validate.unobtrusive.min.jsvalidate自分のフォームと競合する関数をすでにフォームに登録しています。したがって、関数を呼び出す代わりに、rules を追加してvalidateみてください。

$("#myinput").rules("add", {
    required: true,
    minlength: 2,
    messages: {
        required: "Required input",
        minlength: jQuery.format("Please, at least {0} characters are necessary")
    }
});
于 2010-11-24T19:02:02.900 に答える
1

新しい Unobtrusive jQuery Adapter は、全体に対して有効にするか、まったく有効にしないように設計されていると思います。特定のビューに対して条件付きで有効/無効にすることはできません。

于 2010-11-24T21:28:20.987 に答える
0

どのバージョンのMVC3を使用していますか?それはCTP、ベータ、またはRCですか?Razorを使用したRCでは問題なく動作します。ビューからコードを投稿してください。

于 2010-11-24T19:02:50.753 に答える
0

web.config に移動して、これを見つけてみてください。

  <appSettings>
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
  </appSettings>

UnobtrusiveJavaScriptEnabled を false に設定します。ただし、それ以上のキーがある場合があります。

于 2010-11-24T19:45:31.580 に答える