jquery datepicker焦点事件

时间:2014-04-22 14:25:04

标签: jquery datepicker

我使用jquery datepicker在表单中有2个日期字段。 单击第一个字段并选择日期将自动填充第二个日期字段,其中选择日期为datefield1 +一天 - 一切正常。

但是,如果我单击表单的提交按钮,则不会传输第二个日期字段(即自动填充)的日期,这意味着它为空。但是,如果我手动点击第二个日期字段并通过datepicker选择日期,则会通过表单正确提交日期。

是否有可能将第二个(自动填充的)日期字段设置为点击或类似的东西,以便第二个日期正确提交?

这是脚本:

$(function() {

    $(document).ready(function () {

        $("#dt1").datepicker({
            dateFormat: "dd-M-yy",
            minDate: 0,
            onSelect: function (date) {
                var date2 = $('#dt1').datepicker('getDate');
                date2.setDate(date2.getDate() + 1);
                $('#dt2').datepicker('setDate', date2);
                //sets minDate to dt1 date + 1
                $('#dt2').datepicker('option', 'minDate', date2);
            }
        });
        $('#dt2').datepicker({
            dateFormat: "dd-M-yy",
            onClose: function () {
                var dt1 = $('#dt1').datepicker('getDate');
                console.log(dt1);
                var dt2 = $('#dt2').datepicker('getDate');
                if (dt2 <= dt1) {
                    var minDate = $('#dt2').datepicker('option', 'minDate');
                    $('#dt2').datepicker('setDate', minDate);
                }
            }
        });
    });

此致 Schani

2 个答案:

答案 0 :(得分:0)

Try this:
    $('#dt2').datepicker('setDate', date2).trigger('change');
instead of:
    $('#dt2').datepicker('setDate', date2);

答案 1 :(得分:0)

我自己找到了解决方案。只需$(&#39;#dt2&#39;)。focus();在第一个函数中:

$("#dt1").datepicker({
        dateFormat: "dd-M-yy",
        minDate: 0,
        onSelect: function (date) {
            var date2 = $('#dt1').datepicker('getDate');
            date2.setDate(date2.getDate() + 1);
            $('#dt2').datepicker('setDate', date2);
            //sets minDate to dt1 date + 1
            $('#dt2').datepicker('option', 'minDate', date2);
$('#dt2' ).focus();
        }
    });
    $('#dt2').datepicker({
        dateFormat: "dd-M-yy",
        onClose: function () {
            var dt1 = $('#dt1').datepicker('getDate');
            console.log(dt1);
            var dt2 = $('#dt2').datepicker('getDate');
            if (dt2 <= dt1) {
                var minDate = $('#dt2').datepicker('option', 'minDate');
                $('#dt2').datepicker('setDate', minDate);
            }