【问题标题】:jquery datepicker focus eventjquery datepicker焦点事件
【发布时间】:2014-04-22 14:25:03
【问题描述】:

我在一个使用 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);
                }
            }
        });
    });

问候 沙尼

【问题讨论】:

  • 嘿,我已经为你创建了 jsfiddle jsfiddle.net/9dr4p,点击提交按钮,我能够获得这两个值(观察开发者工具中的控制台) 喜欢:som.php? dt1=2014 年 4 月 23 日&dt2=2014 年 4 月 24 日
  • 嗨,Sam,感谢您为我制作了小提琴。真的,即使第二个字段没有被点击?

标签: jquery datepicker


【解决方案1】:
Try this:
    $('#dt2').datepicker('setDate', date2).trigger('change');
instead of:
    $('#dt2').datepicker('setDate', date2);

【讨论】:

  • 嗨,阿德里安,感谢您的快速回复。我试过了,但很抱歉它不起作用。
  • 没有线索?也许这很重要。隐藏的表单字段用于捕获日期选择器日期,但只有在单击日期选择器日期字段时才会填充数据。第二个(自动填充)日期字段的数据未提交到表单。
【解决方案2】:

自己找到了解决方案。只是 $('#dt2' ).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);
            }

【讨论】:

    猜你喜欢
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多