如何根据jquery-ui中的开始日期限制datepicker结束日期?

时间:2014-04-02 14:13:49

标签: jquery jquery-ui datepicker

我试图让在#ftm-field1中选择开始日期的用户,并且当选择#ftm-field1中的日期时,用户无法选择#ftm-field1之前的结束日期即可。结束日期在#ftm-field2中选择。

var dateToday = new Date();
$('#formTaskManagement #ftm-field1').datepicker({
    dateFormat: "yy-mm-dd",
    minDate: null,
    maxDate: dateToday,
});

$('#formTaskManagement #ftm-field2').datepicker({
    dateFormat: "yy-mm-dd",
    minDate: null,
    maxDate: dateToday,
});

我尝试过使用

$('#formTaskManagement #ftm-field1').datepicker({
        minDate: null,
        maxDate: dateToday,
        onSelect: function(selected) {
            $('#formTaskManagement #ftm-field2').datepicker({minDate: selected})
        }
    });

    $('#formTaskManagement #ftm-field2').datepicker({
        minDate: null,
        maxDate: dateToday,
        onSelect: function(selected) {
            $('#formTaskManagement #ftm-field1').datepicker({maxDate: selected})
        }
    });

我已尝试过此stackoverflow post,但未成功。

它根本不起作用。感谢您阅读本文。

2 个答案:

答案 0 :(得分:1)

Jquery UI日期Picker minDate值应该是字符串而不是完成日期或者minDate也接受日期对象。但在你的情况下,你试图使用date string而不是日期对象来设置思维。

尝试使用以下方式设置最小日期:

$('#DatePicker').datepicker("option", "minDate", new Date(dateText));

尝试此代码可能会帮助您实现目标 -

var dateToday = new Date();
$('#txtDate1').datepicker({
    dateFormat: "yy-mm-dd",
    minDate: null,
    maxDate: dateToday,
     onSelect: function(selected) {
        $('#txtDate2').datepicker("option", "minDate",  $("#txtDate1").datepicker('getDate') )
     }
});

$('#txtDate2').datepicker({
    dateFormat: "yy-mm-dd",
    minDate: null,
    maxDate: dateToday,
}); 

Demo in Fiddle

答案 1 :(得分:0)

尝试onClose。

onClose: function( selectedDate ) {
$( "#formTaskManagement #ftm-field1" ).datepicker( "option", "maxDate", selectedDate );

onClose: function( selectedDate ) {
$( "#formTaskManagement #ftm-field2" ).datepicker( "option", "minDate", selectedDate );

今天的日期为maxdate => maxDate: '0'