首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在jquery.datepicker之后删除错误提示

如何在jquery.datepicker之后删除错误提示
EN

Stack Overflow用户
提问于 2012-04-12 17:09:28
回答 3查看 4.4K关注 0票数 2

我有一个像<input name="begin_time" />,<input name="end_time" />这样的输入,我使用jquery.datepicker和jquery-ui-timepicker addon.js来获取日期时间。

代码语言:javascript
复制
$('input[name=begin_time]').datetimepicker({
        minDate : 0,
        stepMinute : 5,
        beforeShow : function (input, inst) {},
        onClose : function (dateText, inst) {
            var endDateTextBox = $('input[name=end_time]');
            var beginDateTextBox = $('input[name=begin_time]');
            var testStartDate = new Date(dateText);
            if (endDateTextBox.val() != '') {
                var testEndDate = new Date(endDateTextBox.val());
                if (testStartDate > testEndDate)
                    endDateTextBox.val(dateText);
            } else {
                endDateTextBox.val(dateText);
            }
        },
        onSelect : function (selectedDateTime) {
            var start = $(this).datetimepicker('getDate');
            $('input[name=end_time]').datetimepicker('option', 'minDate', new Date(start.getTime()));
        }
    });
    $('input[name=end_time]').datetimepicker({
        onClose : function (dateText, inst) {
            var startDateTextBox = $('input[name=begin_time]');
            if (startDateTextBox.val() != '') {
                var testStartDate = new Date(startDateTextBox.val());
                var testEndDate = new Date(dateText);
                if (testStartDate > testEndDate)
                    startDateTextBox.val(dateText);
            } else {
                startDateTextBox.val(dateText);
            }
        },
        stepMinute : 5,
        onSelect : function (selectedDateTime) {
            var end = $(this).datetimepicker('getDate');
            $('input[name=begin_time]').datetimepicker('option', 'maxDate', new Date(end.getTime()));
        }
    });

我还使用jquery.validate.js来验证输入,并确保在提交表单之前需要它。

代码语言:javascript
复制
$('#form').validate({
    rules : {
        begin_time : 'required',
                end_time : 'required'
    },
    messages : {
        begin_time : 'The  start time can\' be empty',
                end_time : 'The event end time can\' be empty'
    }
})

当用户没有填写任何内容时,我提交,然后出现消息(它是正确的)。

但是当我拿起datetime时,错误提示仍然没有消失。我要它消失。

有人能给我一个建议吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-12 17:57:42

您可以使用focusCleanup来消除任何错误类和消息。

代码语言:javascript
复制
$(".selector").validate({
   focusCleanup: true
})
票数 1
EN

Stack Overflow用户

发布于 2012-12-13 09:56:22

这对我很有效:

代码语言:javascript
复制
$("#dateFieldID").change(function () {
    $('#formID').validate({
        required: true,
        date: true
    }).element('#dateFieldID');
});

向每个日期选择器输入字段添加一个change事件,然后验证为我删除了该字段。我在火狐17,IE 7+,Safari6和Chromev.23上进行了测试。我见过其他一些帖子,其中开发人员建议挂钩到JQuery UI DatePicker onClose事件,然后在调度onClose事件时将焦点重新设置到日期字段。这确实起作用了,但是在IE中,DatePicker对话框不会隐藏。此外,只有在日期字段失去焦点后,错误消息才会消失-这与其他字段不一致。这对我来说很管用。

我希望这对某些人有帮助。这似乎运行得很好--至少对我来说是这样。)

票数 2
EN

Stack Overflow用户

发布于 2018-08-28 08:15:55

当时这里的解决方案对我不起作用。当从日期选择器中选择日期时,可以添加下面的onSelect来验证日期字段:

代码语言:javascript
复制
$("#dateFieldID").datepick({
    dateFormat: 'dd/mm/yyyy',
    changeMonth: true,
    changeYear: true,
    maxDate: 0,
    onSelect: function () {
        $("#dateFieldID").valid();
    }
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10120607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档