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