3

我在 jQuery UI datepicker 中使用了出色的 Trent Richardson datetimepicker 插件。

我有几行数据,每行有两个选择器实例,一个用于流程的开始时间,一个用于流程的结束时间。当我的用户单击一个时,我想根据另一个框的值重置最小或最大日期时间元素 - 换句话说,根据开始时间限制结束时间,根据结束时间限制开始时间(以防止用户在结束后开始或在开始前结束)。

我像这样调用 datetimepicker:

$('.c_inbox_date').datetimepicker({
    hourGrid: 12,
    minuteGrid: 30,
    timeFormat: 'HHmm',
    showTimezone: false,
})

这是我正在开发的用于即时重置最小和最大时间的功能:

$('.c_inbox_date').click(function() {
    var this_col = $(this).closest('td').parent().children().index($(this).closest('td'));  
    if (this_col == 3) {
        var stop_time = $(this).closest('td').next('td').children('input').val();       
        $(this).datetimepicker({
            maxDateTime: stop_time
        })              
    } else {    
        var start_time = $(this).closest('td').prev('td').children('input').val();
        $(this).datetimepicker({
            minDateTime: new Date(start_time)
        })              
    }
})

函数中的警告框确认 start_time 和 stop_time 变量包含正确的值。如您所见,我尝试使用“新日期”来确保该值实际上是一个日期对象,但这也不起作用。

谁能告诉我为什么这不起作用?datetimepicker 是否允许这种即时更改?还是我的语法错了?一如既往,非常感谢任何帮助。

4

2 回答 2

11

使用它们。

$('input')
  .datepicker('option', 'maxDate', new Date())
  .datetimepicker('option', 'maxDateTime', new Date());

逆向工程的乐趣...

于 2013-11-19T18:33:32.540 回答
0

当使用普通的日期选择器设置日期时,我使用以下语法:

$( this ).datepicker( "option", "maxDate", new Date(your_date) );
//your_date is a string in the format: YYYY,MM,DD

我假设在您的情况下,您可以使用:

$( this ).datetimepicker( "option", "maxDateTime", new Date(your_date) );
//your_date is a string in the format: YYYY,MM,DD,HH,II
于 2013-01-16T15:08:05.730 回答