我有一个自定义日期选择器 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');
}
}
});
当用户输入有效日期时,我可以看到正在输出到控制台的跟踪显示“日期有效”,但由于某种原因,表单没有被提交。
这里发生了什么事?