.validate()
各フォームで個別に初期化します。.valid()
次に、2番目のフォームの内を使用して最初のフォームが有効かどうかをテストしますsubmitHandler
。
$(document).ready(function(){
$("#firstForm").validate({ // initialize form validation on form 1
// rules & other options
});
$("#secondForm").validate({ // initialize form validation on form 2
// rules & other options,
errorPlacement: function(error, element) {
$("#firstForm").valid(); // forces test on form 1 when form 2 has errors
error.insertAfter(element); // default error placement
},
submitHandler: function(form) {
if ($("#firstForm").valid()) { // test to see if form 1 is valid before submitting form 2
form.submit;
}
return false;
}
});
});
$("#firstForm").valid()
上記の2つの場所で、次の2つの場合に使用されます。
1)フォーム#2は有効です; submitHandler:
したがって、フォーム送信の条件として、フォーム#1の有効性をテストする必要があります。
2)フォーム#2は無効です; したがって、内でフォーム#1の妥当性テストをトリガーする必要がありますerrorPlacement:
。を使用しているerrorPlacement:
ため、指定する必要があります。指定しないとエラーが表示されません。この例では、デフォルトのエラー配置コードを使用しただけです。
編集:
2番目のフォームで最初のフォームと同時にエラーを表示する.valid()
には、2番目のフォームのerrorPlacement:
オプションにも追加します。これにより、フォーム2にエラーが発生したときにフォーム1でテストが強制されます。上記の編集されたコードを参照してください。
動作中のデモ:http : //jsfiddle.net/eLsDs/1/
編集2:
HTMLが含まれていないため、HTMLが表示されませんが、OPのコードを含めるようにデモを変更しました。
OPのコードを使用したデモ:http: //jsfiddle.net/eLsDs/2/