2012-03-21 19 views
0

データアノテーションの検証を使用するMVCアプリケーションがあります。私はまた、いくつかの手動jQuery検証を提出するボタンを持っています。 jQueryの検証が成功し、フレームワークによって実装された目立たない検証が成功すると、送信ボタンを非表示にします。MVC 3のデータアノテーションの検証jQueryのカスタム検証での作業

これは私が持っているコードです:

$('#btnSubmit').click(function() { 
    if (!$('#Terms').is(':checked')) { 
     $('.termsLabel').animate({ color: "#c71040" }, 'slow'); 
     $('.termsLabel a').animate({ color: "#c71040" }, 'slow'); 
     return false; 
    } 

    if ($('.wordCount').hasClass('error')) { 
     $('.caption label').animate({ color: "#c71040" }, 'slow'); 
     return false; 
    } 

    if ($(form).valid()) { 
     $('#btnSubmit').hide(); 
     $('#submitting').show(); 
    } 

}); 

(フォーム).valid()メソッドは常にフォームが投稿された場​​合でもfalseを返すようだ(と表示/非表示が実行されることはありません)。

私がこれをやっているのは、ユーザーがイメージをアップロードできるようにしているため、ユーザーが2回以上クリックできないようにするためです。

ご了承ください。

+0

を.validate呼び出していませんでしたフォームはどこに定義されていますか? $(フォーム)が間違っているようです。 –

答えて

1

私自身の質問にお答えします。その後、

@using (Html.BeginForm("MyAction", "MyController", FormMethod.Post, new { @ID = "MyForm" })) 

そして:フォームで

$('#MyForm').validate(); 

    if ($('#MyForm').valid()) { 
     $('#btnSubmit').hide(); 
     $('#submitting').show(); 
    } 

問題は、私は自分のフォームの名前を与えていないで、)(

関連する問題