2011-06-21 19 views
1

私はMVC3を使用しています。私はMVC 3のjQueryカスタム検証の問題

@using (Html.BeginForm()) 

{

@Html.TextBoxFor(model => model.Title, new { maxlength = 250 , style = "width:450px;" }) 
@Html.ValidationMessageFor(model => model.Title) 

<input type="submit" value="Submit" id="submit"/> 

}

とき、私...デフォルトの検証が動作していないそうpage..Butを提出する際に、クライアント側でカスタムチェックを追加したいです送信ボタンをクリックしてください。私は以下の検証を書く

$('#submit').click(function() {/*code for validation*/ if not satisfied then return false; else return true; } 

これは正常に動作しています。falseを返す場合、モデルによって提供されるデフォルトの検証は動作しません。 ie。 @Html.ValidationMessageFor(model => model.Title)このコードは動作していません[エラーメッセージが表示されません]。ボタンをクリックしたときにデフォルトの検証を検証する方法は?

答えて

1

ビューに次の行を追加してみてください。 Html.EnableClientValidation();クライアントの検証がweb.configファイルで有効になっていることを

チェック:

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

あなたは次のスクリプトを参照する必要があります。

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

このリンクがどのようにのようにあなたの背景のビットを与えますできます。 http://bradwilson.typepad.com/blog/2010/10/mvc3-unobtrusive-validation.html

0

MVCで控えめな検証は、このスクリプトで内部的に処理されるので、それは動作しません。jquery.validate.unobtrusive.js。私はあなたの選択は、注釈を使用してバリデーションのビルドを無視してあなた自身のバリデーションを構築するか、前述のスクリプトでバリデーションルールを追加できるかどうかを確認することです。あなたは私が似たような問題を扱った質問を静かではなく、あなたが何をしなければならないかをあなたに知らせることができます。この情報がお役に立てば幸い、ここにポストがある:

Integrating qTip with MVC3 and jQuery Validation (errorPlacement)

EDIT:それは、上記のスクリプトはフォームを検証し、それが失敗した場合、エラーメッセージを追加し、その原因を動作しません理由。したがって、エラーメッセージは、スクリプトのルール内でエラーが見つかった場合にのみ表示され、前述のような外部検証では表示されません。