javascript - 允许事件继续

标签 javascript jquery forms events event-handling

我有一个自定义日期选择器 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');
                }
            }
        });

当用户输入有效日期时,我可以看到控制台输出一条跟踪信息,提示“日期有效”,但由于某种原因,表单没有提交。

这里发生了什么?

最佳答案

尝试

return true 

在这种情况下,

console.log //returns undefined. 

此外,在某些浏览器中,表单提交事件的 preventDefault 存在一个错误,因此您可能需要更改

e.preventDefault() 

return false;

关于javascript - 允许事件继续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11326201/

相关文章:

forms - 如何在奏鸣曲管理包中将 NULL 作为数据网格关系中的选项?

javascript - 无法在运行时在 Jenkins 中安装 NodeJS

JQuery - $this 未定义

javascript - 拦截HTTP请求和响应时,什么时候调用函数request、requestError、response、responseError?

jquery - 如何使用 jQuery 从表中获取值

javascript - 添加日期选择器 Jquery

javascript - 将 HTML 输入值传递给 jQuery 表单值

python - Flask:对多个表单字段进行条件验证

javascript - $ ('div' ).click 功能不适用于所有 div

javascript - VueJS : How to use a binding value within a for loop of an array?