カスタムの日付ピッカー jQuery プラグインがあります。フォームの送信時に、日付ピッカーは選択された日付を検証して、有効かどうかを確認します。そうでない場合は、エラー メッセージが表示されます。そうでない場合は、続行してフォームを送信する必要があります。
ユーザーが最初に有効な日付を入力した場合、すべてが正常に機能します。ただし、ユーザーが無効な日付を入力した場合、エラー メッセージが表示され、ユーザーが日付を修正しても、フォームは投稿されません。そこに座っているだけです。
フォーム送信イベントを処理するコードの一部を次に示します。
var hiddenInput = $('.custom-date-picker-value');
var form = hiddenInput.closest('form');
$(form).submit(function (e) {
selectedMonth = monthSelect.find('option:selected').text();
selectedYear = yearSelect.find('option:selected').text();
selectedDay = daySelect.find('option:selected').text();
$('#dateValidationMessage').html('');
if (selectedMonth == '' || selectedDay == '' || selectedYear == '') {
$('#dateValidationMessage').html($('#dateOfBirthRequired').val());
e.preventDefault();
}
else {
var dateValue = selectedMonth + '/' + selectedDay + '/' + selectedYear;
var dob = new Date(dateValue);
var modifiedDate = new Date(dob.getFullYear() + 2, dob.getMonth(), dob.getDay());
if (modifiedDate > new Date()) {
$('#dateValidationMessage').html($('#AgeGreaterThan').val());
e.preventDefault();
}
else {
hiddenInput.val(dateValue);
console.log('date is valid');
}
}
});
ユーザーが有効な日付を入力すると、「日付は有効です」というトレースがコンソールに出力されているのがわかりますが、何らかの理由でフォームが送信されません。
ここで何が起こっているのですか?