検証の1つが偽の場合、フォームが送信されないようにするにはどうすればよいですか?
$('#form').submit(function(){
validateForm1();
validateForm(document.forms['dpart2']);
validateForm(document.forms['dpart3']);
});
検証の1つが偽の場合、フォームが送信されないようにするにはどうすればよいですか?
$('#form').submit(function(){
validateForm1();
validateForm(document.forms['dpart2']);
validateForm(document.forms['dpart3']);
});
$('#form').submit(function(){
return (validateForm1() &&
validateForm(document.forms['dpart2']) &&
validateForm(document.forms['dpart3']))
});
基本的に、イベントハンドラー関数でfalseを返します。
関数がfalseを返す場合、フォームは送信されません。
$('#form').submit(function(){
return validateForm1()
&& validateForm(document.forms['dpart2'])
&& validateForm(document.forms['dpart3']);
}
});
わかりました、他の解決策のいくつかは怠惰に失敗します...おそらく、すべての検証を実行して、すべてのエラーが表示されるようにする必要があります。検証メソッドが失敗した場合、検証メソッドは false を返すと想定されています。
$("#myform").submit(function() {
var ret = true;
ret = validateForm1() && ret;
ret = validateForm(document.forms['dpart2']) && ret
ret = validateForm(document.forms['dpart3'])) && ret
return ret;
});
このようにして、すべてのバリデーターが呼び出されますが、失敗のブール値は失敗になります。
validateForm(...)およびvalidateForm1()がブール値を返す場合(trueは検証エラーが発生しなかったことを意味します)、それを実行しようとします。
$('#form').submit(function(){
if (!validateForm1() || !validateForm(document.forms['dpart2']) || !validateForm(document.forms['dpart3'])) {
return false;
}
});
自動的に思いつく考え: 徹底したクライアント側の検証を実装したとしても、サーバー上で無効なリクエスト データを受信する準備をしておく必要があります。
クライアント側の検証によって、サーバー側の検証が妨げられることはありません。それは使いやすさの単なるボーナスです。