6

フォームの検証が失敗した場合にこの div を表示したい。

<div class="alert">
  <strong>Warning!</strong> @Html.ValidationSummary(false, "Fix these errors:")
</div>

中に巻いてみました

if(! ViewData.ModelState.IsValid)

ただし、フォームを送信するときに div は表示されません。おそらく、jquery検証によるポストバックがないためです。ifステートメントの検証の要約リストをすべて間違った入力フィールドから削除すると、検証ロジックは問題ないようです。

検証に基づいて div の表示を切り替えるにはどうすればよいですか?

4

2 に答える 2

3

アップデート

受け入れられた回答を書き直しました。サーバー接続が遅い場合、サーバー リクエスト中にエラー div が表示されます。エラーがない場合でも。フォームの送信時にフォームが有効かどうかを確認するように変更しました。このコード スニペットは、1 つのフォームがあることを前提としています。

$(document).ready(function () {
    $(".alert").hide(); //hides the div on page load

    $("form").submit(function () {
        if (!$(this).valid()) {
            $('.alert').show();
        }
    });        
}); 
于 2012-11-08T17:03:24.440 に答える
2

この単純なスクリプトを適用できます。あまり洗練されていませんが、うまくいくはずです

$(document).ready(function () {
    $('.alert').hide(); //hides the div on page load
    $('#submit').click(function () {  //assumes your submit button has id="submit"
        $('.alert').show(); //shows the div when submit is clicked
    });
});

ご覧のとおり、これは実際には検証を気にしません。送信ボタンがクリックされたときに「アラート」divを表示するだけです。検証エラーがある場合は、div が警告とともに表示されます。フォームが有効な場合は、更新またはリダイレクトを想定しているため、div が実際に表示されることはありません。

于 2012-10-24T13:31:44.310 に答える