2011-11-23 8 views
5

私は4つのフィールドを持つフォームを持っています。私はそれらの3つに控えめなバリデーションを適用しました。 私はすべての目立たない検証が実行され、その後jquery関数が呼び出されたときにフォームにonsubmitイベントが定義されているので、最初にそのjquery関数に行き、すべてのステップを実行すると邪魔になりませんそれぞれのテキストボックスの検証メッセージ。jQuery関数で控えめな検証が検証されていることを確認する方法は?

しかし、フォームが目立たない検証に合格した場合、jquery関数のすべてのステップを実行したいと思います。

邪魔されない検証がすべて実行されたことを確認する方法はありますか?

これは私のjqueryのコードです:

function submitDetails() 
{ 
var check = $('#flag').val();    
if (check == 1) 
{ 
return true; 
} 

else { 
var birthDate = ($('#BirthDate').val()).split('/'); 
var graduationDate = ($('#GraduationDate').val()).split('/'); 
var stdate = birthDate[2] + birthDate[1] + birthDate[0]; 
var endate = graduationDate[2] + graduationDate[1] + graduationDate[0]; 
if (($('#LastName').val() == "") || (parseInt(endate) < parseInt(stdate))) 
    { 
    $('#Window').data('tWindow').center().open(); 
    return false; 
} 
else { return true; } 
} 
} 

答えて

10

フォーム送信ハンドラ内で有効であるかどうかをチェックできます。私は上の任意の関数を呼び出すことなく、これを試してみました

$('#formId').submit(function() { 
    if (!$(this).valid()) { 
     // validation failed => here you can call your function or whatever 
     return false; 
    } else { 
     // the form is valid => you could perform some other action if you will 
    } 
}); 
+0

おかげダーリン、 onsubmitイベントが発生しますが、ここでは、submitをクリックしたときに邪魔にならない検証を最初にチェックし、すべての検証が満足されると、postアクションに移ります。そして、あなたが提案したようにjquery関数に行ってはいけません。いくつかのステップを確認する必要があります。 ありがとう.. – Kriitika

+0

私は次のようにフォームIDを与えています: '@ {Html.BeginForm(" Index "、" Home "、FormMethod.Post、new {id =" formId "});} //フォーム本体 @ {Html.EndForm();} ' "を入力し、ページの先頭に頭部のjqueryを次のように定義しました。 Kriitika